Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2b1b858f authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'tip/tracing/ftrace' of...

Merge branch 'tip/tracing/ftrace' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/ftrace
parents 886b5b73 1473e441
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -61,6 +61,14 @@
#define BRANCH_PROFILE()
#define BRANCH_PROFILE()
#endif
#endif


#ifdef CONFIG_EVENT_TRACER
#define FTRACE_EVENTS()	VMLINUX_SYMBOL(__start_ftrace_events) = .;	\
			*(_ftrace_events)				\
			VMLINUX_SYMBOL(__stop_ftrace_events) = .;
#else
#define FTRACE_EVENTS()
#endif

/* .data section */
/* .data section */
#define DATA_DATA							\
#define DATA_DATA							\
	*(.data)							\
	*(.data)							\
@@ -81,7 +89,8 @@
	*(__tracepoints)						\
	*(__tracepoints)						\
	VMLINUX_SYMBOL(__stop___tracepoints) = .;			\
	VMLINUX_SYMBOL(__stop___tracepoints) = .;			\
	LIKELY_PROFILE()		       				\
	LIKELY_PROFILE()		       				\
	BRANCH_PROFILE()
	BRANCH_PROFILE()						\
	FTRACE_EVENTS()


#define RO_DATA(align)							\
#define RO_DATA(align)							\
	. = ALIGN((align));						\
	. = ALIGN((align));						\
+3 −0
Original line number Original line Diff line number Diff line
@@ -153,4 +153,7 @@ static inline void tracepoint_synchronize_unregister(void)
	synchronize_sched();
	synchronize_sched();
}
}


#define DEFINE_TRACE_FMT(name, proto, args, fmt)		\
	DECLARE_TRACE(name, TPPROTO(proto), TPARGS(args))

#endif
#endif
+1 −48
Original line number Original line Diff line number Diff line
@@ -4,53 +4,6 @@
#include <linux/sched.h>
#include <linux/sched.h>
#include <linux/tracepoint.h>
#include <linux/tracepoint.h>


DECLARE_TRACE(sched_kthread_stop,
#include <trace/sched_event_types.h>
	TPPROTO(struct task_struct *t),
		TPARGS(t));

DECLARE_TRACE(sched_kthread_stop_ret,
	TPPROTO(int ret),
		TPARGS(ret));

DECLARE_TRACE(sched_wait_task,
	TPPROTO(struct rq *rq, struct task_struct *p),
		TPARGS(rq, p));

DECLARE_TRACE(sched_wakeup,
	TPPROTO(struct rq *rq, struct task_struct *p, int success),
		TPARGS(rq, p, success));

DECLARE_TRACE(sched_wakeup_new,
	TPPROTO(struct rq *rq, struct task_struct *p, int success),
		TPARGS(rq, p, success));

DECLARE_TRACE(sched_switch,
	TPPROTO(struct rq *rq, struct task_struct *prev,
		struct task_struct *next),
		TPARGS(rq, prev, next));

DECLARE_TRACE(sched_migrate_task,
	TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu),
		TPARGS(p, orig_cpu, dest_cpu));

DECLARE_TRACE(sched_process_free,
	TPPROTO(struct task_struct *p),
		TPARGS(p));

DECLARE_TRACE(sched_process_exit,
	TPPROTO(struct task_struct *p),
		TPARGS(p));

DECLARE_TRACE(sched_process_wait,
	TPPROTO(struct pid *pid),
		TPARGS(pid));

DECLARE_TRACE(sched_process_fork,
	TPPROTO(struct task_struct *parent, struct task_struct *child),
		TPARGS(parent, child));

DECLARE_TRACE(sched_signal_send,
	TPPROTO(int sig, struct task_struct *p),
		TPARGS(sig, p));


#endif
#endif
+72 −0
Original line number Original line Diff line number Diff line

/* use <trace/sched.h> instead */
#ifndef DEFINE_TRACE_FMT
# error Do not include this file directly.
# error Unless you know what you are doing.
#endif

DEFINE_TRACE_FMT(sched_kthread_stop,
	TPPROTO(struct task_struct *t),
	TPARGS(t),
	TPFMT("task %s:%d", t->comm, t->pid));

DEFINE_TRACE_FMT(sched_kthread_stop_ret,
	TPPROTO(int ret),
	TPARGS(ret),
	TPFMT("ret=%d", ret));

DEFINE_TRACE_FMT(sched_wait_task,
	TPPROTO(struct rq *rq, struct task_struct *p),
	TPARGS(rq, p),
	TPFMT("task %s:%d", p->comm, p->pid));

DEFINE_TRACE_FMT(sched_wakeup,
	TPPROTO(struct rq *rq, struct task_struct *p, int success),
	TPARGS(rq, p, success),
	TPFMT("task %s:%d %s",
	      p->comm, p->pid, success?"succeeded":"failed"));

DEFINE_TRACE_FMT(sched_wakeup_new,
	TPPROTO(struct rq *rq, struct task_struct *p, int success),
	TPARGS(rq, p, success),
	TPFMT("task %s:%d",
	      p->comm, p->pid, success?"succeeded":"failed"));

DEFINE_TRACE_FMT(sched_switch,
	TPPROTO(struct rq *rq, struct task_struct *prev,
		struct task_struct *next),
	TPARGS(rq, prev, next),
	TPFMT("task %s:%d ==> %s:%d",
	      prev->comm, prev->pid, next->comm, next->pid));

DEFINE_TRACE_FMT(sched_migrate_task,
	TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu),
	TPARGS(p, orig_cpu, dest_cpu),
	TPFMT("task %s:%d from: %d  to: %d",
	      p->comm, p->pid, orig_cpu, dest_cpu));

DEFINE_TRACE_FMT(sched_process_free,
	TPPROTO(struct task_struct *p),
	TPARGS(p),
	TPFMT("task %s:%d", p->comm, p->pid));

DEFINE_TRACE_FMT(sched_process_exit,
	TPPROTO(struct task_struct *p),
	TPARGS(p),
	TPFMT("task %s:%d", p->comm, p->pid));

DEFINE_TRACE_FMT(sched_process_wait,
	TPPROTO(struct pid *pid),
	TPARGS(pid),
	TPFMT("pid %d", pid));

DEFINE_TRACE_FMT(sched_process_fork,
	TPPROTO(struct task_struct *parent, struct task_struct *child),
	TPARGS(parent, child),
	TPFMT("parent %s:%d  child %s:%d",
	      parent->comm, parent->pid, child->comm, child->pid));

DEFINE_TRACE_FMT(sched_signal_send,
	TPPROTO(int sig, struct task_struct *p),
	TPARGS(sig, p),
	TPFMT("sig: %d   task %s:%d", sig, p->comm, p->pid));
+9 −0
Original line number Original line Diff line number Diff line
@@ -159,6 +159,15 @@ config CONTEXT_SWITCH_TRACER
	  This tracer gets called from the context switch and records
	  This tracer gets called from the context switch and records
	  all switching of tasks.
	  all switching of tasks.


config EVENT_TRACER
	bool "Trace various events in the kernel"
	depends on DEBUG_KERNEL
	select TRACING
	help
	  This tracer hooks to various trace points in the kernel
	  allowing the user to pick and choose which trace point they
	  want to trace.

config BOOT_TRACER
config BOOT_TRACER
	bool "Trace boot initcalls"
	bool "Trace boot initcalls"
	depends on DEBUG_KERNEL
	depends on DEBUG_KERNEL
Loading