diff options
| -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 00000000000..96d87b67fe3 --- /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 | |||
