diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-20 18:54:37 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-20 18:54:37 -0400 |
| commit | 467f9957d9283be40101d7255d06fae7e211ff4c (patch) | |
| tree | 71d155ab52b3a78bc88d0c8088b09b3c37f9357a /include/trace | |
| parent | 78f28b7c555359c67c2a0d23f7436e915329421e (diff) | |
| parent | cdf8073d6b2c6c5a3cd6ce0e6c1297157f7f99ba (diff) | |
Merge branch 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perfcounters-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (58 commits)
perf_counter: Fix perf_copy_attr() pointer arithmetic
perf utils: Use a define for the maximum length of a trace event
perf: Add timechart help text and add timechart to "perf help"
tracing, x86, cpuidle: Move the end point of a C state in the power tracer
perf utils: Be consistent about minimum text size in the svghelper
perf timechart: Add "perf timechart record"
perf: Add the timechart tool
perf: Add a SVG helper library file
tracing, perf: Convert the power tracer into an event tracer
perf: Add a sample_event type to the event_union
perf: Allow perf utilities to have "callback" options without arguments
perf: Store trace event name/id pairs in perf.data
perf: Add a timestamp to fork events
sched_clock: Make it NMI safe
perf_counter: Fix up swcounter throttling
x86, perf_counter, bts: Optimize BTS overflow handling
perf sched: Add --input=file option to builtin-sched.c
perf trace: Sample timestamp and cpu when using record flag
perf tools: Increase MAX_EVENT_LENGTH
perf tools: Fix memory leak in read_ftrace_printk()
...
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/power.h | 81 | ||||
| -rw-r--r-- | include/trace/events/sched.h | 33 |
2 files changed, 114 insertions, 0 deletions
diff --git a/include/trace/events/power.h b/include/trace/events/power.h new file mode 100644 index 000000000000..ea6d579261ad --- /dev/null +++ b/include/trace/events/power.h | |||
| @@ -0,0 +1,81 @@ | |||
| 1 | #undef TRACE_SYSTEM | ||
| 2 | #define TRACE_SYSTEM power | ||
| 3 | |||
| 4 | #if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) | ||
| 5 | #define _TRACE_POWER_H | ||
| 6 | |||
| 7 | #include <linux/ktime.h> | ||
| 8 | #include <linux/tracepoint.h> | ||
| 9 | |||
| 10 | #ifndef _TRACE_POWER_ENUM_ | ||
| 11 | #define _TRACE_POWER_ENUM_ | ||
| 12 | enum { | ||
| 13 | POWER_NONE = 0, | ||
| 14 | POWER_CSTATE = 1, | ||
| 15 | POWER_PSTATE = 2, | ||
| 16 | }; | ||
| 17 | #endif | ||
| 18 | |||
| 19 | |||
| 20 | |||
| 21 | TRACE_EVENT(power_start, | ||
| 22 | |||
| 23 | TP_PROTO(unsigned int type, unsigned int state), | ||
| 24 | |||
| 25 | TP_ARGS(type, state), | ||
| 26 | |||
| 27 | TP_STRUCT__entry( | ||
| 28 | __field( u64, type ) | ||
| 29 | __field( u64, state ) | ||
| 30 | ), | ||
| 31 | |||
| 32 | TP_fast_assign( | ||
| 33 | __entry->type = type; | ||
| 34 | __entry->state = state; | ||
| 35 | ), | ||
| 36 | |||
| 37 | TP_printk("type=%lu state=%lu", (unsigned long)__entry->type, (unsigned long)__entry->state) | ||
| 38 | ); | ||
| 39 | |||
| 40 | TRACE_EVENT(power_end, | ||
| 41 | |||
| 42 | TP_PROTO(int dummy), | ||
| 43 | |||
| 44 | TP_ARGS(dummy), | ||
| 45 | |||
| 46 | TP_STRUCT__entry( | ||
| 47 | __field( u64, dummy ) | ||
| 48 | ), | ||
| 49 | |||
| 50 | TP_fast_assign( | ||
| 51 | __entry->dummy = 0xffff; | ||
| 52 | ), | ||
| 53 | |||
| 54 | TP_printk("dummy=%lu", (unsigned long)__entry->dummy) | ||
| 55 | |||
| 56 | ); | ||
| 57 | |||
| 58 | |||
| 59 | TRACE_EVENT(power_frequency, | ||
| 60 | |||
| 61 | TP_PROTO(unsigned int type, unsigned int state), | ||
| 62 | |||
| 63 | TP_ARGS(type, state), | ||
| 64 | |||
| 65 | TP_STRUCT__entry( | ||
| 66 | __field( u64, type ) | ||
| 67 | __field( u64, state ) | ||
| 68 | ), | ||
| 69 | |||
| 70 | TP_fast_assign( | ||
| 71 | __entry->type = type; | ||
| 72 | __entry->state = state; | ||
| 73 | ), | ||
| 74 | |||
| 75 | TP_printk("type=%lu state=%lu", (unsigned long)__entry->type, (unsigned long) __entry->state) | ||
| 76 | ); | ||
| 77 | |||
| 78 | #endif /* _TRACE_POWER_H */ | ||
| 79 | |||
| 80 | /* This part must be outside protection */ | ||
| 81 | #include <trace/define_trace.h> | ||
diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index b48f1ad7c946..4069c43f4187 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h | |||
| @@ -380,6 +380,39 @@ TRACE_EVENT(sched_stat_wait, | |||
| 380 | ); | 380 | ); |
| 381 | 381 | ||
| 382 | /* | 382 | /* |
| 383 | * Tracepoint for accounting runtime (time the task is executing | ||
| 384 | * on a CPU). | ||
| 385 | */ | ||
| 386 | TRACE_EVENT(sched_stat_runtime, | ||
| 387 | |||
| 388 | TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime), | ||
| 389 | |||
| 390 | TP_ARGS(tsk, runtime, vruntime), | ||
| 391 | |||
| 392 | TP_STRUCT__entry( | ||
| 393 | __array( char, comm, TASK_COMM_LEN ) | ||
| 394 | __field( pid_t, pid ) | ||
| 395 | __field( u64, runtime ) | ||
| 396 | __field( u64, vruntime ) | ||
| 397 | ), | ||
| 398 | |||
| 399 | TP_fast_assign( | ||
| 400 | memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); | ||
| 401 | __entry->pid = tsk->pid; | ||
| 402 | __entry->runtime = runtime; | ||
| 403 | __entry->vruntime = vruntime; | ||
| 404 | ) | ||
| 405 | TP_perf_assign( | ||
| 406 | __perf_count(runtime); | ||
| 407 | ), | ||
| 408 | |||
| 409 | TP_printk("task: %s:%d runtime: %Lu [ns], vruntime: %Lu [ns]", | ||
| 410 | __entry->comm, __entry->pid, | ||
| 411 | (unsigned long long)__entry->runtime, | ||
| 412 | (unsigned long long)__entry->vruntime) | ||
| 413 | ); | ||
| 414 | |||
| 415 | /* | ||
| 383 | * Tracepoint for accounting sleep time (time the task is not runnable, | 416 | * Tracepoint for accounting sleep time (time the task is not runnable, |
| 384 | * including iowait, see below). | 417 | * including iowait, see below). |
| 385 | */ | 418 | */ |
