
			Subsystem Trace Points: power

The power tracing system captures events related to power transitions
within the kernel. Broadly speaking there are three major subheadings:

  o Power state switch which reports events related to suspend (S-states),
     cpuidle (C-states) and cpufreq (P-states)
  o System clock related changes
  o Power domains related changes and transitions

This document describes what each of the tracepoints is and why they
might be useful.

Cf. include/trace/events/power.h for the events definitions.

1. Power state switch events
============================

1.1 Trace API
-----------------

A 'cpu' event class gathers the CPU-related events: cpuidle and
cpufreq.

cpu_idle		"state=%lu cpu_id=%lu"
cpu_frequency		"state=%lu cpu_id=%lu"
cpu_frequency_limits	"min=%lu max=%lu cpu_id=%lu"

A suspend event is used to indicate the system going in and out of the
suspend mode:

machine_suspend		"state=%lu"


Note: the value of '-1' or '4294967295' for state means an exit from the current state,
i.e. trace_cpu_idle(4, smp_processor_id()) means that the system
enters the idle state 4, while trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id())
means that the system exits the previous idle state.

The event which has 'state=4294967295' in the trace is very important to the user
space tools which are using it to detect the end of the current state, and so to
correctly draw the states diagrams and to calculate accurate statistics etc.

2. Clocks events
================
The clock events are used for clock enable/disable and for
clock rate change.

clock_enable		"%s state=%lu cpu_id=%lu"
clock_disable		"%s state=%lu cpu_id=%lu"
clock_set_rate		"%s state=%lu cpu_id=%lu"

The first parameter gives the clock name (e.g. "gpio1_iclk").
The second parameter is '1' for enable, '0' for disable, the target
clock rate for set_rate.

3. Power domains events
=======================
The power domain events are used for power domains transitions

power_domain_target	"%s state=%lu cpu_id=%lu"

The first parameter gives the power domain name (e.g. "mpu_pwrdm").
The second parameter is the power domain target state.

