tracing: create the C style tracing for the sched subsystem
This patch utilizes the TRACE_EVENT_FORMAT macro to enable the C style faster tracing for the sched subsystem trace points. Signed-off-by: Steven Rostedt <srostedt@redhat.com>hifive-unleashed-5.1
parent
fd99498989
commit
629928041c
|
@ -157,4 +157,7 @@ static inline void tracepoint_synchronize_unregister(void)
|
||||||
#define TRACE_FORMAT(name, proto, args, fmt) \
|
#define TRACE_FORMAT(name, proto, args, fmt) \
|
||||||
DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
|
DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
|
||||||
|
|
||||||
|
#define TRACE_EVENT_FORMAT(name, proto, args, fmt, struct, tpfmt) \
|
||||||
|
TRACE_FORMAT(name, PARAMS(proto), PARAMS(args), PARAMS(fmt))
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
|
|
||||||
/* use <trace/sched.h> instead */
|
/* use <trace/sched.h> instead */
|
||||||
#ifndef TRACE_FORMAT
|
#ifndef TRACE_EVENT_FORMAT
|
||||||
# error Do not include this file directly.
|
# error Do not include this file directly.
|
||||||
# error Unless you know what you are doing.
|
# error Unless you know what you are doing.
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,70 +8,139 @@
|
||||||
#undef TRACE_SYSTEM
|
#undef TRACE_SYSTEM
|
||||||
#define TRACE_SYSTEM sched
|
#define TRACE_SYSTEM sched
|
||||||
|
|
||||||
TRACE_FORMAT(sched_kthread_stop,
|
TRACE_EVENT_FORMAT(sched_kthread_stop,
|
||||||
TPPROTO(struct task_struct *t),
|
TPPROTO(struct task_struct *t),
|
||||||
TPARGS(t),
|
TPARGS(t),
|
||||||
TPFMT("task %s:%d", t->comm, t->pid));
|
TPFMT("task %s:%d", t->comm, t->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, t->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_kthread_stop_ret,
|
TRACE_EVENT_FORMAT(sched_kthread_stop_ret,
|
||||||
TPPROTO(int ret),
|
TPPROTO(int ret),
|
||||||
TPARGS(ret),
|
TPARGS(ret),
|
||||||
TPFMT("ret=%d", ret));
|
TPFMT("ret=%d", ret),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(int, ret, ret)
|
||||||
|
),
|
||||||
|
TPRAWFMT("ret=%d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_wait_task,
|
TRACE_EVENT_FORMAT(sched_wait_task,
|
||||||
TPPROTO(struct rq *rq, struct task_struct *p),
|
TPPROTO(struct rq *rq, struct task_struct *p),
|
||||||
TPARGS(rq, p),
|
TPARGS(rq, p),
|
||||||
TPFMT("task %s:%d", p->comm, p->pid));
|
TPFMT("task %s:%d", p->comm, p->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_wakeup,
|
TRACE_EVENT_FORMAT(sched_wakeup,
|
||||||
TPPROTO(struct rq *rq, struct task_struct *p, int success),
|
TPPROTO(struct rq *rq, struct task_struct *p, int success),
|
||||||
TPARGS(rq, p, success),
|
TPARGS(rq, p, success),
|
||||||
TPFMT("task %s:%d %s",
|
TPFMT("task %s:%d %s",
|
||||||
p->comm, p->pid, success?"succeeded":"failed"));
|
p->comm, p->pid, success ? "succeeded" : "failed"),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
TRACE_FIELD(int, success, success)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d success=%d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_wakeup_new,
|
TRACE_EVENT_FORMAT(sched_wakeup_new,
|
||||||
TPPROTO(struct rq *rq, struct task_struct *p, int success),
|
TPPROTO(struct rq *rq, struct task_struct *p, int success),
|
||||||
TPARGS(rq, p, success),
|
TPARGS(rq, p, success),
|
||||||
TPFMT("task %s:%d",
|
TPFMT("task %s:%d",
|
||||||
p->comm, p->pid, success?"succeeded":"failed"));
|
p->comm, p->pid, success ? "succeeded" : "failed"),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
TRACE_FIELD(int, success, success)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d success=%d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_switch,
|
TRACE_EVENT_FORMAT(sched_switch,
|
||||||
TPPROTO(struct rq *rq, struct task_struct *prev,
|
TPPROTO(struct rq *rq, struct task_struct *prev,
|
||||||
struct task_struct *next),
|
struct task_struct *next),
|
||||||
TPARGS(rq, prev, next),
|
TPARGS(rq, prev, next),
|
||||||
TPFMT("task %s:%d ==> %s:%d",
|
TPFMT("task %s:%d ==> %s:%d",
|
||||||
prev->comm, prev->pid, next->comm, next->pid));
|
prev->comm, prev->pid, next->comm, next->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, prev_pid, prev->pid)
|
||||||
|
TRACE_FIELD(int, prev_prio, prev->prio)
|
||||||
|
TRACE_FIELD(pid_t, next_pid, next->pid)
|
||||||
|
TRACE_FIELD(int, next_prio, next->prio)
|
||||||
|
),
|
||||||
|
TPRAWFMT("prev %d:%d ==> next %d:%d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_migrate_task,
|
TRACE_EVENT_FORMAT(sched_migrate_task,
|
||||||
TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu),
|
TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu),
|
||||||
TPARGS(p, orig_cpu, dest_cpu),
|
TPARGS(p, orig_cpu, dest_cpu),
|
||||||
TPFMT("task %s:%d from: %d to: %d",
|
TPFMT("task %s:%d from: %d to: %d",
|
||||||
p->comm, p->pid, orig_cpu, dest_cpu));
|
p->comm, p->pid, orig_cpu, dest_cpu),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
TRACE_FIELD(int, orig_cpu, orig_cpu)
|
||||||
|
TRACE_FIELD(int, dest_cpu, dest_cpu)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d from: %d to: %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_process_free,
|
TRACE_EVENT_FORMAT(sched_process_free,
|
||||||
TPPROTO(struct task_struct *p),
|
TPPROTO(struct task_struct *p),
|
||||||
TPARGS(p),
|
TPARGS(p),
|
||||||
TPFMT("task %s:%d", p->comm, p->pid));
|
TPFMT("task %s:%d", p->comm, p->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_process_exit,
|
TRACE_EVENT_FORMAT(sched_process_exit,
|
||||||
TPPROTO(struct task_struct *p),
|
TPPROTO(struct task_struct *p),
|
||||||
TPARGS(p),
|
TPARGS(p),
|
||||||
TPFMT("task %s:%d", p->comm, p->pid));
|
TPFMT("task %s:%d", p->comm, p->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_process_wait,
|
TRACE_EVENT_FORMAT(sched_process_wait,
|
||||||
TPPROTO(struct pid *pid),
|
TPPROTO(struct pid *pid),
|
||||||
TPARGS(pid),
|
TPARGS(pid),
|
||||||
TPFMT("pid %d", pid));
|
TPFMT("pid %d", pid_nr(pid)),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, pid, pid_nr(pid))
|
||||||
|
),
|
||||||
|
TPRAWFMT("task %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_process_fork,
|
TRACE_EVENT_FORMAT(sched_process_fork,
|
||||||
TPPROTO(struct task_struct *parent, struct task_struct *child),
|
TPPROTO(struct task_struct *parent, struct task_struct *child),
|
||||||
TPARGS(parent, child),
|
TPARGS(parent, child),
|
||||||
TPFMT("parent %s:%d child %s:%d",
|
TPFMT("parent %s:%d child %s:%d",
|
||||||
parent->comm, parent->pid, child->comm, child->pid));
|
parent->comm, parent->pid, child->comm, child->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(pid_t, parent, parent->pid)
|
||||||
|
TRACE_FIELD(pid_t, child, child->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("parent %d child %d")
|
||||||
|
);
|
||||||
|
|
||||||
TRACE_FORMAT(sched_signal_send,
|
TRACE_EVENT_FORMAT(sched_signal_send,
|
||||||
TPPROTO(int sig, struct task_struct *p),
|
TPPROTO(int sig, struct task_struct *p),
|
||||||
TPARGS(sig, p),
|
TPARGS(sig, p),
|
||||||
TPFMT("sig: %d task %s:%d", sig, p->comm, p->pid));
|
TPFMT("sig: %d task %s:%d", sig, p->comm, p->pid),
|
||||||
|
TRACE_STRUCT(
|
||||||
|
TRACE_FIELD(int, sig, sig)
|
||||||
|
TRACE_FIELD(pid_t, pid, p->pid)
|
||||||
|
),
|
||||||
|
TPRAWFMT("sig: %d task %d")
|
||||||
|
);
|
||||||
|
|
||||||
#undef TRACE_SYSTEM
|
#undef TRACE_SYSTEM
|
||||||
|
|
Loading…
Reference in New Issue