diff options
| -rw-r--r-- | include/linux/tracepoint.h | 3 | ||||
| -rw-r--r-- | include/trace/sched_event_types.h | 119 |
2 files changed, 97 insertions, 25 deletions
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h index 62d13391a240..152b2f03fb86 100644 --- a/include/linux/tracepoint.h +++ b/include/linux/tracepoint.h | |||
| @@ -157,4 +157,7 @@ static inline void tracepoint_synchronize_unregister(void) | |||
| 157 | #define TRACE_FORMAT(name, proto, args, fmt) \ | 157 | #define TRACE_FORMAT(name, proto, args, fmt) \ |
| 158 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) | 158 | DECLARE_TRACE(name, PARAMS(proto), PARAMS(args)) |
| 159 | 159 | ||
| 160 | #define TRACE_EVENT_FORMAT(name, proto, args, fmt, struct, tpfmt) \ | ||
| 161 | TRACE_FORMAT(name, PARAMS(proto), PARAMS(args), PARAMS(fmt)) | ||
| 162 | |||
| 160 | #endif | 163 | #endif |
diff --git a/include/trace/sched_event_types.h b/include/trace/sched_event_types.h index 2ada206565a3..ba059c10b58a 100644 --- a/include/trace/sched_event_types.h +++ b/include/trace/sched_event_types.h | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | ||
| 2 | /* use <trace/sched.h> instead */ | 2 | /* use <trace/sched.h> instead */ |
| 3 | #ifndef TRACE_FORMAT | 3 | #ifndef TRACE_EVENT_FORMAT |
| 4 | # error Do not include this file directly. | 4 | # error Do not include this file directly. |
| 5 | # error Unless you know what you are doing. | 5 | # error Unless you know what you are doing. |
| 6 | #endif | 6 | #endif |
| @@ -8,70 +8,139 @@ | |||
| 8 | #undef TRACE_SYSTEM | 8 | #undef TRACE_SYSTEM |
| 9 | #define TRACE_SYSTEM sched | 9 | #define TRACE_SYSTEM sched |
| 10 | 10 | ||
| 11 | TRACE_FORMAT(sched_kthread_stop, | 11 | TRACE_EVENT_FORMAT(sched_kthread_stop, |
| 12 | TPPROTO(struct task_struct *t), | 12 | TPPROTO(struct task_struct *t), |
| 13 | TPARGS(t), | 13 | TPARGS(t), |
| 14 | TPFMT("task %s:%d", t->comm, t->pid)); | 14 | TPFMT("task %s:%d", t->comm, t->pid), |
| 15 | TRACE_STRUCT( | ||
| 16 | TRACE_FIELD(pid_t, pid, t->pid) | ||
| 17 | ), | ||
| 18 | TPRAWFMT("task %d") | ||
| 19 | ); | ||
| 15 | 20 | ||
| 16 | TRACE_FORMAT(sched_kthread_stop_ret, | 21 | TRACE_EVENT_FORMAT(sched_kthread_stop_ret, |
| 17 | TPPROTO(int ret), | 22 | TPPROTO(int ret), |
| 18 | TPARGS(ret), | 23 | TPARGS(ret), |
| 19 | TPFMT("ret=%d", ret)); | 24 | TPFMT("ret=%d", ret), |
| 25 | TRACE_STRUCT( | ||
| 26 | TRACE_FIELD(int, ret, ret) | ||
| 27 | ), | ||
| 28 | TPRAWFMT("ret=%d") | ||
| 29 | ); | ||
| 20 | 30 | ||
| 21 | TRACE_FORMAT(sched_wait_task, | 31 | TRACE_EVENT_FORMAT(sched_wait_task, |
| 22 | TPPROTO(struct rq *rq, struct task_struct *p), | 32 | TPPROTO(struct rq *rq, struct task_struct *p), |
| 23 | TPARGS(rq, p), | 33 | TPARGS(rq, p), |
| 24 | TPFMT("task %s:%d", p->comm, p->pid)); | 34 | TPFMT("task %s:%d", p->comm, p->pid), |
| 35 | TRACE_STRUCT( | ||
| 36 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 37 | ), | ||
| 38 | TPRAWFMT("task %d") | ||
| 39 | ); | ||
| 25 | 40 | ||
| 26 | TRACE_FORMAT(sched_wakeup, | 41 | TRACE_EVENT_FORMAT(sched_wakeup, |
| 27 | TPPROTO(struct rq *rq, struct task_struct *p, int success), | 42 | TPPROTO(struct rq *rq, struct task_struct *p, int success), |
| 28 | TPARGS(rq, p, success), | 43 | TPARGS(rq, p, success), |
| 29 | TPFMT("task %s:%d %s", | 44 | TPFMT("task %s:%d %s", |
| 30 | p->comm, p->pid, success?"succeeded":"failed")); | 45 | p->comm, p->pid, success ? "succeeded" : "failed"), |
| 46 | TRACE_STRUCT( | ||
| 47 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 48 | TRACE_FIELD(int, success, success) | ||
| 49 | ), | ||
| 50 | TPRAWFMT("task %d success=%d") | ||
| 51 | ); | ||
| 31 | 52 | ||
| 32 | TRACE_FORMAT(sched_wakeup_new, | 53 | TRACE_EVENT_FORMAT(sched_wakeup_new, |
| 33 | TPPROTO(struct rq *rq, struct task_struct *p, int success), | 54 | TPPROTO(struct rq *rq, struct task_struct *p, int success), |
| 34 | TPARGS(rq, p, success), | 55 | TPARGS(rq, p, success), |
| 35 | TPFMT("task %s:%d", | 56 | TPFMT("task %s:%d", |
| 36 | p->comm, p->pid, success?"succeeded":"failed")); | 57 | p->comm, p->pid, success ? "succeeded" : "failed"), |
| 58 | TRACE_STRUCT( | ||
| 59 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 60 | TRACE_FIELD(int, success, success) | ||
| 61 | ), | ||
| 62 | TPRAWFMT("task %d success=%d") | ||
| 63 | ); | ||
| 37 | 64 | ||
| 38 | TRACE_FORMAT(sched_switch, | 65 | TRACE_EVENT_FORMAT(sched_switch, |
| 39 | TPPROTO(struct rq *rq, struct task_struct *prev, | 66 | TPPROTO(struct rq *rq, struct task_struct *prev, |
| 40 | struct task_struct *next), | 67 | struct task_struct *next), |
| 41 | TPARGS(rq, prev, next), | 68 | TPARGS(rq, prev, next), |
| 42 | TPFMT("task %s:%d ==> %s:%d", | 69 | TPFMT("task %s:%d ==> %s:%d", |
| 43 | prev->comm, prev->pid, next->comm, next->pid)); | 70 | prev->comm, prev->pid, next->comm, next->pid), |
| 71 | TRACE_STRUCT( | ||
| 72 | TRACE_FIELD(pid_t, prev_pid, prev->pid) | ||
| 73 | TRACE_FIELD(int, prev_prio, prev->prio) | ||
| 74 | TRACE_FIELD(pid_t, next_pid, next->pid) | ||
| 75 | TRACE_FIELD(int, next_prio, next->prio) | ||
| 76 | ), | ||
| 77 | TPRAWFMT("prev %d:%d ==> next %d:%d") | ||
| 78 | ); | ||
| 44 | 79 | ||
| 45 | TRACE_FORMAT(sched_migrate_task, | 80 | TRACE_EVENT_FORMAT(sched_migrate_task, |
| 46 | TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu), | 81 | TPPROTO(struct task_struct *p, int orig_cpu, int dest_cpu), |
| 47 | TPARGS(p, orig_cpu, dest_cpu), | 82 | TPARGS(p, orig_cpu, dest_cpu), |
| 48 | TPFMT("task %s:%d from: %d to: %d", | 83 | TPFMT("task %s:%d from: %d to: %d", |
| 49 | p->comm, p->pid, orig_cpu, dest_cpu)); | 84 | p->comm, p->pid, orig_cpu, dest_cpu), |
| 85 | TRACE_STRUCT( | ||
| 86 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 87 | TRACE_FIELD(int, orig_cpu, orig_cpu) | ||
| 88 | TRACE_FIELD(int, dest_cpu, dest_cpu) | ||
| 89 | ), | ||
| 90 | TPRAWFMT("task %d from: %d to: %d") | ||
| 91 | ); | ||
| 50 | 92 | ||
| 51 | TRACE_FORMAT(sched_process_free, | 93 | TRACE_EVENT_FORMAT(sched_process_free, |
| 52 | TPPROTO(struct task_struct *p), | 94 | TPPROTO(struct task_struct *p), |
| 53 | TPARGS(p), | 95 | TPARGS(p), |
| 54 | TPFMT("task %s:%d", p->comm, p->pid)); | 96 | TPFMT("task %s:%d", p->comm, p->pid), |
| 97 | TRACE_STRUCT( | ||
| 98 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 99 | ), | ||
| 100 | TPRAWFMT("task %d") | ||
| 101 | ); | ||
| 55 | 102 | ||
| 56 | TRACE_FORMAT(sched_process_exit, | 103 | TRACE_EVENT_FORMAT(sched_process_exit, |
| 57 | TPPROTO(struct task_struct *p), | 104 | TPPROTO(struct task_struct *p), |
| 58 | TPARGS(p), | 105 | TPARGS(p), |
| 59 | TPFMT("task %s:%d", p->comm, p->pid)); | 106 | TPFMT("task %s:%d", p->comm, p->pid), |
| 107 | TRACE_STRUCT( | ||
| 108 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 109 | ), | ||
| 110 | TPRAWFMT("task %d") | ||
| 111 | ); | ||
| 60 | 112 | ||
| 61 | TRACE_FORMAT(sched_process_wait, | 113 | TRACE_EVENT_FORMAT(sched_process_wait, |
| 62 | TPPROTO(struct pid *pid), | 114 | TPPROTO(struct pid *pid), |
| 63 | TPARGS(pid), | 115 | TPARGS(pid), |
| 64 | TPFMT("pid %d", pid)); | 116 | TPFMT("pid %d", pid_nr(pid)), |
| 117 | TRACE_STRUCT( | ||
| 118 | TRACE_FIELD(pid_t, pid, pid_nr(pid)) | ||
| 119 | ), | ||
| 120 | TPRAWFMT("task %d") | ||
| 121 | ); | ||
| 65 | 122 | ||
| 66 | TRACE_FORMAT(sched_process_fork, | 123 | TRACE_EVENT_FORMAT(sched_process_fork, |
| 67 | TPPROTO(struct task_struct *parent, struct task_struct *child), | 124 | TPPROTO(struct task_struct *parent, struct task_struct *child), |
| 68 | TPARGS(parent, child), | 125 | TPARGS(parent, child), |
| 69 | TPFMT("parent %s:%d child %s:%d", | 126 | TPFMT("parent %s:%d child %s:%d", |
| 70 | parent->comm, parent->pid, child->comm, child->pid)); | 127 | parent->comm, parent->pid, child->comm, child->pid), |
| 128 | TRACE_STRUCT( | ||
| 129 | TRACE_FIELD(pid_t, parent, parent->pid) | ||
| 130 | TRACE_FIELD(pid_t, child, child->pid) | ||
| 131 | ), | ||
| 132 | TPRAWFMT("parent %d child %d") | ||
| 133 | ); | ||
| 71 | 134 | ||
| 72 | TRACE_FORMAT(sched_signal_send, | 135 | TRACE_EVENT_FORMAT(sched_signal_send, |
| 73 | TPPROTO(int sig, struct task_struct *p), | 136 | TPPROTO(int sig, struct task_struct *p), |
| 74 | TPARGS(sig, p), | 137 | TPARGS(sig, p), |
| 75 | TPFMT("sig: %d task %s:%d", sig, p->comm, p->pid)); | 138 | TPFMT("sig: %d task %s:%d", sig, p->comm, p->pid), |
| 139 | TRACE_STRUCT( | ||
| 140 | TRACE_FIELD(int, sig, sig) | ||
| 141 | TRACE_FIELD(pid_t, pid, p->pid) | ||
| 142 | ), | ||
| 143 | TPRAWFMT("sig: %d task %d") | ||
| 144 | ); | ||
| 76 | 145 | ||
| 77 | #undef TRACE_SYSTEM | 146 | #undef TRACE_SYSTEM |
