diff options
author | Jean Pihet <j-pihet@ti.com> | 2011-01-05 13:49:02 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-01-05 15:25:29 -0500 |
commit | 4b95f135f606c87e4056b6d7fd3c5781c818858b (patch) | |
tree | fb2ca090436141cd1c2641ab313e14e564a92afe | |
parent | 938cfed18bec2c7361f37efc954712a7cc42c353 (diff) |
tools, perf: Documentation for the power events API
Provides documentation for the following:
- the new power trace API,
- the old (legacy) power trace API,
- the DEPRECATED Kconfig option usage.
Signed-off-by: Jean Pihet <j-pihet@ti.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: trenn@suse.de
Cc: Len Brown <len.brown@intel.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: linux-pm@lists.linux-foundation.org
LKML-Reference: <1294253342-29056-3-git-send-email-j-pihet@ti.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | Documentation/trace/events-power.txt | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/Documentation/trace/events-power.txt b/Documentation/trace/events-power.txt new file mode 100644 index 000000000000..96d87b67fe37 --- /dev/null +++ b/Documentation/trace/events-power.txt | |||
@@ -0,0 +1,90 @@ | |||
1 | |||
2 | Subsystem Trace Points: power | ||
3 | |||
4 | The power tracing system captures events related to power transitions | ||
5 | within the kernel. Broadly speaking there are three major subheadings: | ||
6 | |||
7 | o Power state switch which reports events related to suspend (S-states), | ||
8 | cpuidle (C-states) and cpufreq (P-states) | ||
9 | o System clock related changes | ||
10 | o Power domains related changes and transitions | ||
11 | |||
12 | This document describes what each of the tracepoints is and why they | ||
13 | might be useful. | ||
14 | |||
15 | Cf. include/trace/events/power.h for the events definitions. | ||
16 | |||
17 | 1. Power state switch events | ||
18 | ============================ | ||
19 | |||
20 | 1.1 New trace API | ||
21 | ----------------- | ||
22 | |||
23 | A 'cpu' event class gathers the CPU-related events: cpuidle and | ||
24 | cpufreq. | ||
25 | |||
26 | cpu_idle "state=%lu cpu_id=%lu" | ||
27 | cpu_frequency "state=%lu cpu_id=%lu" | ||
28 | |||
29 | A suspend event is used to indicate the system going in and out of the | ||
30 | suspend mode: | ||
31 | |||
32 | machine_suspend "state=%lu" | ||
33 | |||
34 | |||
35 | Note: the value of '-1' or '4294967295' for state means an exit from the current state, | ||
36 | i.e. trace_cpu_idle(4, smp_processor_id()) means that the system | ||
37 | enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()) | ||
38 | means that the system exits the previous idle state. | ||
39 | |||
40 | The event which has 'state=4294967295' in the trace is very important to the user | ||
41 | space tools which are using it to detect the end of the current state, and so to | ||
42 | correctly draw the states diagrams and to calculate accurate statistics etc. | ||
43 | |||
44 | 1.2 DEPRECATED trace API | ||
45 | ------------------------ | ||
46 | |||
47 | A new Kconfig option CONFIG_EVENT_POWER_TRACING_DEPRECATED with the default value of | ||
48 | 'y' has been created. This allows the legacy trace power API to be used conjointly | ||
49 | with the new trace API. | ||
50 | The Kconfig option, the old trace API (in include/trace/events/power.h) and the | ||
51 | old trace points will disappear in a future release (namely 2.6.41). | ||
52 | |||
53 | power_start "type=%lu state=%lu cpu_id=%lu" | ||
54 | power_frequency "type=%lu state=%lu cpu_id=%lu" | ||
55 | power_end "cpu_id=%lu" | ||
56 | |||
57 | The 'type' parameter takes one of those macros: | ||
58 | . POWER_NONE = 0, | ||
59 | . POWER_CSTATE = 1, /* C-State */ | ||
60 | . POWER_PSTATE = 2, /* Fequency change or DVFS */ | ||
61 | |||
62 | The 'state' parameter is set depending on the type: | ||
63 | . Target C-state for type=POWER_CSTATE, | ||
64 | . Target frequency for type=POWER_PSTATE, | ||
65 | |||
66 | power_end is used to indicate the exit of a state, corresponding to the latest | ||
67 | power_start event. | ||
68 | |||
69 | 2. Clocks events | ||
70 | ================ | ||
71 | The clock events are used for clock enable/disable and for | ||
72 | clock rate change. | ||
73 | |||
74 | clock_enable "%s state=%lu cpu_id=%lu" | ||
75 | clock_disable "%s state=%lu cpu_id=%lu" | ||
76 | clock_set_rate "%s state=%lu cpu_id=%lu" | ||
77 | |||
78 | The first parameter gives the clock name (e.g. "gpio1_iclk"). | ||
79 | The second parameter is '1' for enable, '0' for disable, the target | ||
80 | clock rate for set_rate. | ||
81 | |||
82 | 3. Power domains events | ||
83 | ======================= | ||
84 | The power domain events are used for power domains transitions | ||
85 | |||
86 | power_domain_target "%s state=%lu cpu_id=%lu" | ||
87 | |||
88 | The first parameter gives the power domain name (e.g. "mpu_pwrdm"). | ||
89 | The second parameter is the power domain target state. | ||
90 | |||