diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-10-23 02:23:20 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-10-23 02:23:20 -0400 |
commit | 43315956509ca6913764861ac7dec128b91eb1ec (patch) | |
tree | 60fd5647f150a46e63093a41417c2eef3e776b3d /include/trace | |
parent | 9bf4e7fba8006d19846fec877b6da0616b2772de (diff) | |
parent | 6beba7adbe092e63dfe8d09fbd1e3ec140474a13 (diff) |
Merge branch 'perf/core' into perf/probes
Conflicts:
tools/perf/Makefile
Merge reason:
- fix the conflict
- pick up the pr_*() infrastructure to queue up dependent patch
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/bkl.h | 61 | ||||
-rw-r--r-- | include/trace/events/irq.h | 8 | ||||
-rw-r--r-- | include/trace/events/power.h | 2 | ||||
-rw-r--r-- | include/trace/events/sched.h | 44 | ||||
-rw-r--r-- | include/trace/events/timer.h | 79 | ||||
-rw-r--r-- | include/trace/ftrace.h | 15 | ||||
-rw-r--r-- | include/trace/syscall.h | 2 |
7 files changed, 136 insertions, 75 deletions
diff --git a/include/trace/events/bkl.h b/include/trace/events/bkl.h new file mode 100644 index 000000000000..1af72dc24278 --- /dev/null +++ b/include/trace/events/bkl.h | |||
@@ -0,0 +1,61 @@ | |||
1 | #undef TRACE_SYSTEM | ||
2 | #define TRACE_SYSTEM bkl | ||
3 | |||
4 | #if !defined(_TRACE_BKL_H) || defined(TRACE_HEADER_MULTI_READ) | ||
5 | #define _TRACE_BKL_H | ||
6 | |||
7 | #include <linux/tracepoint.h> | ||
8 | |||
9 | TRACE_EVENT(lock_kernel, | ||
10 | |||
11 | TP_PROTO(const char *func, const char *file, int line), | ||
12 | |||
13 | TP_ARGS(func, file, line), | ||
14 | |||
15 | TP_STRUCT__entry( | ||
16 | __field( int, depth ) | ||
17 | __field_ext( const char *, func, FILTER_PTR_STRING ) | ||
18 | __field_ext( const char *, file, FILTER_PTR_STRING ) | ||
19 | __field( int, line ) | ||
20 | ), | ||
21 | |||
22 | TP_fast_assign( | ||
23 | /* We want to record the lock_depth after lock is acquired */ | ||
24 | __entry->depth = current->lock_depth + 1; | ||
25 | __entry->func = func; | ||
26 | __entry->file = file; | ||
27 | __entry->line = line; | ||
28 | ), | ||
29 | |||
30 | TP_printk("depth=%d file:line=%s:%d func=%s()", __entry->depth, | ||
31 | __entry->file, __entry->line, __entry->func) | ||
32 | ); | ||
33 | |||
34 | TRACE_EVENT(unlock_kernel, | ||
35 | |||
36 | TP_PROTO(const char *func, const char *file, int line), | ||
37 | |||
38 | TP_ARGS(func, file, line), | ||
39 | |||
40 | TP_STRUCT__entry( | ||
41 | __field(int, depth ) | ||
42 | __field(const char *, func ) | ||
43 | __field(const char *, file ) | ||
44 | __field(int, line ) | ||
45 | ), | ||
46 | |||
47 | TP_fast_assign( | ||
48 | __entry->depth = current->lock_depth; | ||
49 | __entry->func = func; | ||
50 | __entry->file = file; | ||
51 | __entry->line = line; | ||
52 | ), | ||
53 | |||
54 | TP_printk("depth=%d file:line=%s:%d func=%s()", __entry->depth, | ||
55 | __entry->file, __entry->line, __entry->func) | ||
56 | ); | ||
57 | |||
58 | #endif /* _TRACE_BKL_H */ | ||
59 | |||
60 | /* This part must be outside protection */ | ||
61 | #include <trace/define_trace.h> | ||
diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h index b89f9db4a404..dcfcd4407623 100644 --- a/include/trace/events/irq.h +++ b/include/trace/events/irq.h | |||
@@ -48,7 +48,7 @@ TRACE_EVENT(irq_handler_entry, | |||
48 | __assign_str(name, action->name); | 48 | __assign_str(name, action->name); |
49 | ), | 49 | ), |
50 | 50 | ||
51 | TP_printk("irq=%d handler=%s", __entry->irq, __get_str(name)) | 51 | TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) |
52 | ); | 52 | ); |
53 | 53 | ||
54 | /** | 54 | /** |
@@ -78,7 +78,7 @@ TRACE_EVENT(irq_handler_exit, | |||
78 | __entry->ret = ret; | 78 | __entry->ret = ret; |
79 | ), | 79 | ), |
80 | 80 | ||
81 | TP_printk("irq=%d return=%s", | 81 | TP_printk("irq=%d ret=%s", |
82 | __entry->irq, __entry->ret ? "handled" : "unhandled") | 82 | __entry->irq, __entry->ret ? "handled" : "unhandled") |
83 | ); | 83 | ); |
84 | 84 | ||
@@ -107,7 +107,7 @@ TRACE_EVENT(softirq_entry, | |||
107 | __entry->vec = (int)(h - vec); | 107 | __entry->vec = (int)(h - vec); |
108 | ), | 108 | ), |
109 | 109 | ||
110 | TP_printk("softirq=%d action=%s", __entry->vec, | 110 | TP_printk("vec=%d [action=%s]", __entry->vec, |
111 | show_softirq_name(__entry->vec)) | 111 | show_softirq_name(__entry->vec)) |
112 | ); | 112 | ); |
113 | 113 | ||
@@ -136,7 +136,7 @@ TRACE_EVENT(softirq_exit, | |||
136 | __entry->vec = (int)(h - vec); | 136 | __entry->vec = (int)(h - vec); |
137 | ), | 137 | ), |
138 | 138 | ||
139 | TP_printk("softirq=%d action=%s", __entry->vec, | 139 | TP_printk("vec=%d [action=%s]", __entry->vec, |
140 | show_softirq_name(__entry->vec)) | 140 | show_softirq_name(__entry->vec)) |
141 | ); | 141 | ); |
142 | 142 | ||
diff --git a/include/trace/events/power.h b/include/trace/events/power.h index ea6d579261ad..9bb96e5a2848 100644 --- a/include/trace/events/power.h +++ b/include/trace/events/power.h | |||
@@ -16,8 +16,6 @@ enum { | |||
16 | }; | 16 | }; |
17 | #endif | 17 | #endif |
18 | 18 | ||
19 | |||
20 | |||
21 | TRACE_EVENT(power_start, | 19 | TRACE_EVENT(power_start, |
22 | 20 | ||
23 | TP_PROTO(unsigned int type, unsigned int state), | 21 | TP_PROTO(unsigned int type, unsigned int state), |
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 4069c43f4187..b50b9856c59f 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
@@ -26,7 +26,7 @@ TRACE_EVENT(sched_kthread_stop, | |||
26 | __entry->pid = t->pid; | 26 | __entry->pid = t->pid; |
27 | ), | 27 | ), |
28 | 28 | ||
29 | TP_printk("task %s:%d", __entry->comm, __entry->pid) | 29 | TP_printk("comm=%s pid=%d", __entry->comm, __entry->pid) |
30 | ); | 30 | ); |
31 | 31 | ||
32 | /* | 32 | /* |
@@ -46,7 +46,7 @@ TRACE_EVENT(sched_kthread_stop_ret, | |||
46 | __entry->ret = ret; | 46 | __entry->ret = ret; |
47 | ), | 47 | ), |
48 | 48 | ||
49 | TP_printk("ret %d", __entry->ret) | 49 | TP_printk("ret=%d", __entry->ret) |
50 | ); | 50 | ); |
51 | 51 | ||
52 | /* | 52 | /* |
@@ -73,7 +73,7 @@ TRACE_EVENT(sched_wait_task, | |||
73 | __entry->prio = p->prio; | 73 | __entry->prio = p->prio; |
74 | ), | 74 | ), |
75 | 75 | ||
76 | TP_printk("task %s:%d [%d]", | 76 | TP_printk("comm=%s pid=%d prio=%d", |
77 | __entry->comm, __entry->pid, __entry->prio) | 77 | __entry->comm, __entry->pid, __entry->prio) |
78 | ); | 78 | ); |
79 | 79 | ||
@@ -94,7 +94,7 @@ TRACE_EVENT(sched_wakeup, | |||
94 | __field( pid_t, pid ) | 94 | __field( pid_t, pid ) |
95 | __field( int, prio ) | 95 | __field( int, prio ) |
96 | __field( int, success ) | 96 | __field( int, success ) |
97 | __field( int, cpu ) | 97 | __field( int, target_cpu ) |
98 | ), | 98 | ), |
99 | 99 | ||
100 | TP_fast_assign( | 100 | TP_fast_assign( |
@@ -102,12 +102,12 @@ TRACE_EVENT(sched_wakeup, | |||
102 | __entry->pid = p->pid; | 102 | __entry->pid = p->pid; |
103 | __entry->prio = p->prio; | 103 | __entry->prio = p->prio; |
104 | __entry->success = success; | 104 | __entry->success = success; |
105 | __entry->cpu = task_cpu(p); | 105 | __entry->target_cpu = task_cpu(p); |
106 | ), | 106 | ), |
107 | 107 | ||
108 | TP_printk("task %s:%d [%d] success=%d [%03d]", | 108 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", |
109 | __entry->comm, __entry->pid, __entry->prio, | 109 | __entry->comm, __entry->pid, __entry->prio, |
110 | __entry->success, __entry->cpu) | 110 | __entry->success, __entry->target_cpu) |
111 | ); | 111 | ); |
112 | 112 | ||
113 | /* | 113 | /* |
@@ -127,7 +127,7 @@ TRACE_EVENT(sched_wakeup_new, | |||
127 | __field( pid_t, pid ) | 127 | __field( pid_t, pid ) |
128 | __field( int, prio ) | 128 | __field( int, prio ) |
129 | __field( int, success ) | 129 | __field( int, success ) |
130 | __field( int, cpu ) | 130 | __field( int, target_cpu ) |
131 | ), | 131 | ), |
132 | 132 | ||
133 | TP_fast_assign( | 133 | TP_fast_assign( |
@@ -135,12 +135,12 @@ TRACE_EVENT(sched_wakeup_new, | |||
135 | __entry->pid = p->pid; | 135 | __entry->pid = p->pid; |
136 | __entry->prio = p->prio; | 136 | __entry->prio = p->prio; |
137 | __entry->success = success; | 137 | __entry->success = success; |
138 | __entry->cpu = task_cpu(p); | 138 | __entry->target_cpu = task_cpu(p); |
139 | ), | 139 | ), |
140 | 140 | ||
141 | TP_printk("task %s:%d [%d] success=%d [%03d]", | 141 | TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", |
142 | __entry->comm, __entry->pid, __entry->prio, | 142 | __entry->comm, __entry->pid, __entry->prio, |
143 | __entry->success, __entry->cpu) | 143 | __entry->success, __entry->target_cpu) |
144 | ); | 144 | ); |
145 | 145 | ||
146 | /* | 146 | /* |
@@ -176,7 +176,7 @@ TRACE_EVENT(sched_switch, | |||
176 | __entry->next_prio = next->prio; | 176 | __entry->next_prio = next->prio; |
177 | ), | 177 | ), |
178 | 178 | ||
179 | TP_printk("task %s:%d [%d] (%s) ==> %s:%d [%d]", | 179 | TP_printk("prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_pid=%d next_prio=%d", |
180 | __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, | 180 | __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, |
181 | __entry->prev_state ? | 181 | __entry->prev_state ? |
182 | __print_flags(__entry->prev_state, "|", | 182 | __print_flags(__entry->prev_state, "|", |
@@ -211,7 +211,7 @@ TRACE_EVENT(sched_migrate_task, | |||
211 | __entry->dest_cpu = dest_cpu; | 211 | __entry->dest_cpu = dest_cpu; |
212 | ), | 212 | ), |
213 | 213 | ||
214 | TP_printk("task %s:%d [%d] from: %d to: %d", | 214 | TP_printk("comm=%s pid=%d prio=%d orig_cpu=%d dest_cpu=%d", |
215 | __entry->comm, __entry->pid, __entry->prio, | 215 | __entry->comm, __entry->pid, __entry->prio, |
216 | __entry->orig_cpu, __entry->dest_cpu) | 216 | __entry->orig_cpu, __entry->dest_cpu) |
217 | ); | 217 | ); |
@@ -237,7 +237,7 @@ TRACE_EVENT(sched_process_free, | |||
237 | __entry->prio = p->prio; | 237 | __entry->prio = p->prio; |
238 | ), | 238 | ), |
239 | 239 | ||
240 | TP_printk("task %s:%d [%d]", | 240 | TP_printk("comm=%s pid=%d prio=%d", |
241 | __entry->comm, __entry->pid, __entry->prio) | 241 | __entry->comm, __entry->pid, __entry->prio) |
242 | ); | 242 | ); |
243 | 243 | ||
@@ -262,7 +262,7 @@ TRACE_EVENT(sched_process_exit, | |||
262 | __entry->prio = p->prio; | 262 | __entry->prio = p->prio; |
263 | ), | 263 | ), |
264 | 264 | ||
265 | TP_printk("task %s:%d [%d]", | 265 | TP_printk("comm=%s pid=%d prio=%d", |
266 | __entry->comm, __entry->pid, __entry->prio) | 266 | __entry->comm, __entry->pid, __entry->prio) |
267 | ); | 267 | ); |
268 | 268 | ||
@@ -287,7 +287,7 @@ TRACE_EVENT(sched_process_wait, | |||
287 | __entry->prio = current->prio; | 287 | __entry->prio = current->prio; |
288 | ), | 288 | ), |
289 | 289 | ||
290 | TP_printk("task %s:%d [%d]", | 290 | TP_printk("comm=%s pid=%d prio=%d", |
291 | __entry->comm, __entry->pid, __entry->prio) | 291 | __entry->comm, __entry->pid, __entry->prio) |
292 | ); | 292 | ); |
293 | 293 | ||
@@ -314,7 +314,7 @@ TRACE_EVENT(sched_process_fork, | |||
314 | __entry->child_pid = child->pid; | 314 | __entry->child_pid = child->pid; |
315 | ), | 315 | ), |
316 | 316 | ||
317 | TP_printk("parent %s:%d child %s:%d", | 317 | TP_printk("comm=%s pid=%d child_comm=%s child_pid=%d", |
318 | __entry->parent_comm, __entry->parent_pid, | 318 | __entry->parent_comm, __entry->parent_pid, |
319 | __entry->child_comm, __entry->child_pid) | 319 | __entry->child_comm, __entry->child_pid) |
320 | ); | 320 | ); |
@@ -340,7 +340,7 @@ TRACE_EVENT(sched_signal_send, | |||
340 | __entry->sig = sig; | 340 | __entry->sig = sig; |
341 | ), | 341 | ), |
342 | 342 | ||
343 | TP_printk("sig: %d task %s:%d", | 343 | TP_printk("sig=%d comm=%s pid=%d", |
344 | __entry->sig, __entry->comm, __entry->pid) | 344 | __entry->sig, __entry->comm, __entry->pid) |
345 | ); | 345 | ); |
346 | 346 | ||
@@ -374,7 +374,7 @@ TRACE_EVENT(sched_stat_wait, | |||
374 | __perf_count(delay); | 374 | __perf_count(delay); |
375 | ), | 375 | ), |
376 | 376 | ||
377 | TP_printk("task: %s:%d wait: %Lu [ns]", | 377 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
378 | __entry->comm, __entry->pid, | 378 | __entry->comm, __entry->pid, |
379 | (unsigned long long)__entry->delay) | 379 | (unsigned long long)__entry->delay) |
380 | ); | 380 | ); |
@@ -406,7 +406,7 @@ TRACE_EVENT(sched_stat_runtime, | |||
406 | __perf_count(runtime); | 406 | __perf_count(runtime); |
407 | ), | 407 | ), |
408 | 408 | ||
409 | TP_printk("task: %s:%d runtime: %Lu [ns], vruntime: %Lu [ns]", | 409 | TP_printk("comm=%s pid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", |
410 | __entry->comm, __entry->pid, | 410 | __entry->comm, __entry->pid, |
411 | (unsigned long long)__entry->runtime, | 411 | (unsigned long long)__entry->runtime, |
412 | (unsigned long long)__entry->vruntime) | 412 | (unsigned long long)__entry->vruntime) |
@@ -437,7 +437,7 @@ TRACE_EVENT(sched_stat_sleep, | |||
437 | __perf_count(delay); | 437 | __perf_count(delay); |
438 | ), | 438 | ), |
439 | 439 | ||
440 | TP_printk("task: %s:%d sleep: %Lu [ns]", | 440 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
441 | __entry->comm, __entry->pid, | 441 | __entry->comm, __entry->pid, |
442 | (unsigned long long)__entry->delay) | 442 | (unsigned long long)__entry->delay) |
443 | ); | 443 | ); |
@@ -467,7 +467,7 @@ TRACE_EVENT(sched_stat_iowait, | |||
467 | __perf_count(delay); | 467 | __perf_count(delay); |
468 | ), | 468 | ), |
469 | 469 | ||
470 | TP_printk("task: %s:%d iowait: %Lu [ns]", | 470 | TP_printk("comm=%s pid=%d delay=%Lu [ns]", |
471 | __entry->comm, __entry->pid, | 471 | __entry->comm, __entry->pid, |
472 | (unsigned long long)__entry->delay) | 472 | (unsigned long long)__entry->delay) |
473 | ); | 473 | ); |
diff --git a/include/trace/events/timer.h b/include/trace/events/timer.h index 1844c48d640e..e5ce87a0498d 100644 --- a/include/trace/events/timer.h +++ b/include/trace/events/timer.h | |||
@@ -26,7 +26,7 @@ TRACE_EVENT(timer_init, | |||
26 | __entry->timer = timer; | 26 | __entry->timer = timer; |
27 | ), | 27 | ), |
28 | 28 | ||
29 | TP_printk("timer %p", __entry->timer) | 29 | TP_printk("timer=%p", __entry->timer) |
30 | ); | 30 | ); |
31 | 31 | ||
32 | /** | 32 | /** |
@@ -54,7 +54,7 @@ TRACE_EVENT(timer_start, | |||
54 | __entry->now = jiffies; | 54 | __entry->now = jiffies; |
55 | ), | 55 | ), |
56 | 56 | ||
57 | TP_printk("timer %p: func %pf, expires %lu, timeout %ld", | 57 | TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", |
58 | __entry->timer, __entry->function, __entry->expires, | 58 | __entry->timer, __entry->function, __entry->expires, |
59 | (long)__entry->expires - __entry->now) | 59 | (long)__entry->expires - __entry->now) |
60 | ); | 60 | ); |
@@ -81,7 +81,7 @@ TRACE_EVENT(timer_expire_entry, | |||
81 | __entry->now = jiffies; | 81 | __entry->now = jiffies; |
82 | ), | 82 | ), |
83 | 83 | ||
84 | TP_printk("timer %p: now %lu", __entry->timer, __entry->now) | 84 | TP_printk("timer=%p now=%lu", __entry->timer, __entry->now) |
85 | ); | 85 | ); |
86 | 86 | ||
87 | /** | 87 | /** |
@@ -108,7 +108,7 @@ TRACE_EVENT(timer_expire_exit, | |||
108 | __entry->timer = timer; | 108 | __entry->timer = timer; |
109 | ), | 109 | ), |
110 | 110 | ||
111 | TP_printk("timer %p", __entry->timer) | 111 | TP_printk("timer=%p", __entry->timer) |
112 | ); | 112 | ); |
113 | 113 | ||
114 | /** | 114 | /** |
@@ -129,7 +129,7 @@ TRACE_EVENT(timer_cancel, | |||
129 | __entry->timer = timer; | 129 | __entry->timer = timer; |
130 | ), | 130 | ), |
131 | 131 | ||
132 | TP_printk("timer %p", __entry->timer) | 132 | TP_printk("timer=%p", __entry->timer) |
133 | ); | 133 | ); |
134 | 134 | ||
135 | /** | 135 | /** |
@@ -140,24 +140,24 @@ TRACE_EVENT(timer_cancel, | |||
140 | */ | 140 | */ |
141 | TRACE_EVENT(hrtimer_init, | 141 | TRACE_EVENT(hrtimer_init, |
142 | 142 | ||
143 | TP_PROTO(struct hrtimer *timer, clockid_t clockid, | 143 | TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, |
144 | enum hrtimer_mode mode), | 144 | enum hrtimer_mode mode), |
145 | 145 | ||
146 | TP_ARGS(timer, clockid, mode), | 146 | TP_ARGS(hrtimer, clockid, mode), |
147 | 147 | ||
148 | TP_STRUCT__entry( | 148 | TP_STRUCT__entry( |
149 | __field( void *, timer ) | 149 | __field( void *, hrtimer ) |
150 | __field( clockid_t, clockid ) | 150 | __field( clockid_t, clockid ) |
151 | __field( enum hrtimer_mode, mode ) | 151 | __field( enum hrtimer_mode, mode ) |
152 | ), | 152 | ), |
153 | 153 | ||
154 | TP_fast_assign( | 154 | TP_fast_assign( |
155 | __entry->timer = timer; | 155 | __entry->hrtimer = hrtimer; |
156 | __entry->clockid = clockid; | 156 | __entry->clockid = clockid; |
157 | __entry->mode = mode; | 157 | __entry->mode = mode; |
158 | ), | 158 | ), |
159 | 159 | ||
160 | TP_printk("hrtimer %p, clockid %s, mode %s", __entry->timer, | 160 | TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, |
161 | __entry->clockid == CLOCK_REALTIME ? | 161 | __entry->clockid == CLOCK_REALTIME ? |
162 | "CLOCK_REALTIME" : "CLOCK_MONOTONIC", | 162 | "CLOCK_REALTIME" : "CLOCK_MONOTONIC", |
163 | __entry->mode == HRTIMER_MODE_ABS ? | 163 | __entry->mode == HRTIMER_MODE_ABS ? |
@@ -170,26 +170,26 @@ TRACE_EVENT(hrtimer_init, | |||
170 | */ | 170 | */ |
171 | TRACE_EVENT(hrtimer_start, | 171 | TRACE_EVENT(hrtimer_start, |
172 | 172 | ||
173 | TP_PROTO(struct hrtimer *timer), | 173 | TP_PROTO(struct hrtimer *hrtimer), |
174 | 174 | ||
175 | TP_ARGS(timer), | 175 | TP_ARGS(hrtimer), |
176 | 176 | ||
177 | TP_STRUCT__entry( | 177 | TP_STRUCT__entry( |
178 | __field( void *, timer ) | 178 | __field( void *, hrtimer ) |
179 | __field( void *, function ) | 179 | __field( void *, function ) |
180 | __field( s64, expires ) | 180 | __field( s64, expires ) |
181 | __field( s64, softexpires ) | 181 | __field( s64, softexpires ) |
182 | ), | 182 | ), |
183 | 183 | ||
184 | TP_fast_assign( | 184 | TP_fast_assign( |
185 | __entry->timer = timer; | 185 | __entry->hrtimer = hrtimer; |
186 | __entry->function = timer->function; | 186 | __entry->function = hrtimer->function; |
187 | __entry->expires = hrtimer_get_expires(timer).tv64; | 187 | __entry->expires = hrtimer_get_expires(hrtimer).tv64; |
188 | __entry->softexpires = hrtimer_get_softexpires(timer).tv64; | 188 | __entry->softexpires = hrtimer_get_softexpires(hrtimer).tv64; |
189 | ), | 189 | ), |
190 | 190 | ||
191 | TP_printk("hrtimer %p, func %pf, expires %llu, softexpires %llu", | 191 | TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", |
192 | __entry->timer, __entry->function, | 192 | __entry->hrtimer, __entry->function, |
193 | (unsigned long long)ktime_to_ns((ktime_t) { | 193 | (unsigned long long)ktime_to_ns((ktime_t) { |
194 | .tv64 = __entry->expires }), | 194 | .tv64 = __entry->expires }), |
195 | (unsigned long long)ktime_to_ns((ktime_t) { | 195 | (unsigned long long)ktime_to_ns((ktime_t) { |
@@ -206,23 +206,22 @@ TRACE_EVENT(hrtimer_start, | |||
206 | */ | 206 | */ |
207 | TRACE_EVENT(hrtimer_expire_entry, | 207 | TRACE_EVENT(hrtimer_expire_entry, |
208 | 208 | ||
209 | TP_PROTO(struct hrtimer *timer, ktime_t *now), | 209 | TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), |
210 | 210 | ||
211 | TP_ARGS(timer, now), | 211 | TP_ARGS(hrtimer, now), |
212 | 212 | ||
213 | TP_STRUCT__entry( | 213 | TP_STRUCT__entry( |
214 | __field( void *, timer ) | 214 | __field( void *, hrtimer ) |
215 | __field( s64, now ) | 215 | __field( s64, now ) |
216 | ), | 216 | ), |
217 | 217 | ||
218 | TP_fast_assign( | 218 | TP_fast_assign( |
219 | __entry->timer = timer; | 219 | __entry->hrtimer = hrtimer; |
220 | __entry->now = now->tv64; | 220 | __entry->now = now->tv64; |
221 | ), | 221 | ), |
222 | 222 | ||
223 | TP_printk("hrtimer %p, now %llu", __entry->timer, | 223 | TP_printk("hrtimer=%p now=%llu", __entry->hrtimer, |
224 | (unsigned long long)ktime_to_ns((ktime_t) { | 224 | (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) |
225 | .tv64 = __entry->now })) | ||
226 | ); | 225 | ); |
227 | 226 | ||
228 | /** | 227 | /** |
@@ -234,40 +233,40 @@ TRACE_EVENT(hrtimer_expire_entry, | |||
234 | */ | 233 | */ |
235 | TRACE_EVENT(hrtimer_expire_exit, | 234 | TRACE_EVENT(hrtimer_expire_exit, |
236 | 235 | ||
237 | TP_PROTO(struct hrtimer *timer), | 236 | TP_PROTO(struct hrtimer *hrtimer), |
238 | 237 | ||
239 | TP_ARGS(timer), | 238 | TP_ARGS(hrtimer), |
240 | 239 | ||
241 | TP_STRUCT__entry( | 240 | TP_STRUCT__entry( |
242 | __field( void *, timer ) | 241 | __field( void *, hrtimer ) |
243 | ), | 242 | ), |
244 | 243 | ||
245 | TP_fast_assign( | 244 | TP_fast_assign( |
246 | __entry->timer = timer; | 245 | __entry->hrtimer = hrtimer; |
247 | ), | 246 | ), |
248 | 247 | ||
249 | TP_printk("hrtimer %p", __entry->timer) | 248 | TP_printk("hrtimer=%p", __entry->hrtimer) |
250 | ); | 249 | ); |
251 | 250 | ||
252 | /** | 251 | /** |
253 | * hrtimer_cancel - called when the hrtimer is canceled | 252 | * hrtimer_cancel - called when the hrtimer is canceled |
254 | * @timer: pointer to struct hrtimer | 253 | * @hrtimer: pointer to struct hrtimer |
255 | */ | 254 | */ |
256 | TRACE_EVENT(hrtimer_cancel, | 255 | TRACE_EVENT(hrtimer_cancel, |
257 | 256 | ||
258 | TP_PROTO(struct hrtimer *timer), | 257 | TP_PROTO(struct hrtimer *hrtimer), |
259 | 258 | ||
260 | TP_ARGS(timer), | 259 | TP_ARGS(hrtimer), |
261 | 260 | ||
262 | TP_STRUCT__entry( | 261 | TP_STRUCT__entry( |
263 | __field( void *, timer ) | 262 | __field( void *, hrtimer ) |
264 | ), | 263 | ), |
265 | 264 | ||
266 | TP_fast_assign( | 265 | TP_fast_assign( |
267 | __entry->timer = timer; | 266 | __entry->hrtimer = hrtimer; |
268 | ), | 267 | ), |
269 | 268 | ||
270 | TP_printk("hrtimer %p", __entry->timer) | 269 | TP_printk("hrtimer=%p", __entry->hrtimer) |
271 | ); | 270 | ); |
272 | 271 | ||
273 | /** | 272 | /** |
@@ -302,7 +301,7 @@ TRACE_EVENT(itimer_state, | |||
302 | __entry->interval_usec = value->it_interval.tv_usec; | 301 | __entry->interval_usec = value->it_interval.tv_usec; |
303 | ), | 302 | ), |
304 | 303 | ||
305 | TP_printk("which %d, expires %lu, it_value %lu.%lu, it_interval %lu.%lu", | 304 | TP_printk("which=%d expires=%lu it_value=%lu.%lu it_interval=%lu.%lu", |
306 | __entry->which, __entry->expires, | 305 | __entry->which, __entry->expires, |
307 | __entry->value_sec, __entry->value_usec, | 306 | __entry->value_sec, __entry->value_usec, |
308 | __entry->interval_sec, __entry->interval_usec) | 307 | __entry->interval_sec, __entry->interval_usec) |
@@ -332,7 +331,7 @@ TRACE_EVENT(itimer_expire, | |||
332 | __entry->pid = pid_nr(pid); | 331 | __entry->pid = pid_nr(pid); |
333 | ), | 332 | ), |
334 | 333 | ||
335 | TP_printk("which %d, pid %d, now %lu", __entry->which, | 334 | TP_printk("which=%d pid=%d now=%lu", __entry->which, |
336 | (int) __entry->pid, __entry->now) | 335 | (int) __entry->pid, __entry->now) |
337 | ); | 336 | ); |
338 | 337 | ||
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 54d02c06ae7e..a7f946094128 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h | |||
@@ -120,9 +120,10 @@ | |||
120 | #undef __field | 120 | #undef __field |
121 | #define __field(type, item) \ | 121 | #define __field(type, item) \ |
122 | ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \ | 122 | ret = trace_seq_printf(s, "\tfield:" #type " " #item ";\t" \ |
123 | "offset:%u;\tsize:%u;\n", \ | 123 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
124 | (unsigned int)offsetof(typeof(field), item), \ | 124 | (unsigned int)offsetof(typeof(field), item), \ |
125 | (unsigned int)sizeof(field.item)); \ | 125 | (unsigned int)sizeof(field.item), \ |
126 | (unsigned int)is_signed_type(type)); \ | ||
126 | if (!ret) \ | 127 | if (!ret) \ |
127 | return 0; | 128 | return 0; |
128 | 129 | ||
@@ -132,19 +133,21 @@ | |||
132 | #undef __array | 133 | #undef __array |
133 | #define __array(type, item, len) \ | 134 | #define __array(type, item, len) \ |
134 | ret = trace_seq_printf(s, "\tfield:" #type " " #item "[" #len "];\t" \ | 135 | ret = trace_seq_printf(s, "\tfield:" #type " " #item "[" #len "];\t" \ |
135 | "offset:%u;\tsize:%u;\n", \ | 136 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
136 | (unsigned int)offsetof(typeof(field), item), \ | 137 | (unsigned int)offsetof(typeof(field), item), \ |
137 | (unsigned int)sizeof(field.item)); \ | 138 | (unsigned int)sizeof(field.item), \ |
139 | (unsigned int)is_signed_type(type)); \ | ||
138 | if (!ret) \ | 140 | if (!ret) \ |
139 | return 0; | 141 | return 0; |
140 | 142 | ||
141 | #undef __dynamic_array | 143 | #undef __dynamic_array |
142 | #define __dynamic_array(type, item, len) \ | 144 | #define __dynamic_array(type, item, len) \ |
143 | ret = trace_seq_printf(s, "\tfield:__data_loc " #type "[] " #item ";\t"\ | 145 | ret = trace_seq_printf(s, "\tfield:__data_loc " #type "[] " #item ";\t"\ |
144 | "offset:%u;\tsize:%u;\n", \ | 146 | "offset:%u;\tsize:%u;\tsigned:%u;\n", \ |
145 | (unsigned int)offsetof(typeof(field), \ | 147 | (unsigned int)offsetof(typeof(field), \ |
146 | __data_loc_##item), \ | 148 | __data_loc_##item), \ |
147 | (unsigned int)sizeof(field.__data_loc_##item)); \ | 149 | (unsigned int)sizeof(field.__data_loc_##item), \ |
150 | (unsigned int)is_signed_type(type)); \ | ||
148 | if (!ret) \ | 151 | if (!ret) \ |
149 | return 0; | 152 | return 0; |
150 | 153 | ||
diff --git a/include/trace/syscall.h b/include/trace/syscall.h index e290b86f6167..51ee17d3632a 100644 --- a/include/trace/syscall.h +++ b/include/trace/syscall.h | |||
@@ -33,7 +33,7 @@ struct syscall_metadata { | |||
33 | }; | 33 | }; |
34 | 34 | ||
35 | #ifdef CONFIG_FTRACE_SYSCALLS | 35 | #ifdef CONFIG_FTRACE_SYSCALLS |
36 | extern struct syscall_metadata *syscall_nr_to_meta(int nr); | 36 | extern unsigned long arch_syscall_addr(int nr); |
37 | extern int syscall_name_to_nr(char *name); | 37 | extern int syscall_name_to_nr(char *name); |
38 | void set_syscall_enter_id(int num, int id); | 38 | void set_syscall_enter_id(int num, int id); |
39 | void set_syscall_exit_id(int num, int id); | 39 | void set_syscall_exit_id(int num, int id); |