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 Diff line number Diff line
@@ -61,6 +61,14 @@
#define BRANCH_PROFILE()
#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 */
#define DATA_DATA							\
	*(.data)							\
@@ -81,7 +89,8 @@
	*(__tracepoints)						\
	VMLINUX_SYMBOL(__stop___tracepoints) = .;			\
	LIKELY_PROFILE()		       				\
	BRANCH_PROFILE()
	BRANCH_PROFILE()						\
	FTRACE_EVENTS()

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

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

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

DECLARE_TRACE(sched_kthread_stop,
	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));
#include <trace/sched_event_types.h>

#endif
+72 −0
Original line number 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 Diff line number Diff line
@@ -159,6 +159,15 @@ config CONTEXT_SWITCH_TRACER
	  This tracer gets called from the context switch and records
	  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
	bool "Trace boot initcalls"
	depends on DEBUG_KERNEL
Loading