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

Commit f3fe8e4a authored by Steven Rostedt's avatar Steven Rostedt
Browse files

tracing: add schedule events to event trace



This patch changes the trace/sched.h to use the DECLARE_TRACE_FMT
such that they are automatically registered with the event tracer.

And it also adds the tracing sched headers to kernel/trace/events.c

Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
parent b77e38aa
Loading
Loading
Loading
Loading
+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));
+1 −0
Original line number Original line Diff line number Diff line
@@ -39,5 +39,6 @@ obj-$(CONFIG_KMEMTRACE) += kmemtrace.o
obj-$(CONFIG_WORKQUEUE_TRACER) += trace_workqueue.o
obj-$(CONFIG_WORKQUEUE_TRACER) += trace_workqueue.o
obj-$(CONFIG_BLK_DEV_IO_TRACE)	+= blktrace.o
obj-$(CONFIG_BLK_DEV_IO_TRACE)	+= blktrace.o
obj-$(CONFIG_EVENT_TRACER) += trace_events.o
obj-$(CONFIG_EVENT_TRACER) += trace_events.o
obj-$(CONFIG_EVENT_TRACER) += events.o


libftrace-y := ftrace.o
libftrace-y := ftrace.o

kernel/trace/events.c

0 → 100644
+13 −0
Original line number Original line Diff line number Diff line
/*
 * This is the place to register all trace points as events.
 * Include the trace/<type>.h at the top.
 * Include the trace/<type>_event_types.h at the bottom.
 */

/* trace/<type>.h here */
#include <trace/sched.h>

#include "trace_events.h"

/* trace/<type>_event_types.h here */
#include <trace/sched_event_types.h>