1 2 3 Supporting multiple CPU idle levels in kernel 4 5 cpuidle sysfs 6 7System global cpuidle related information and tunables are under 8/sys/devices/system/cpu/cpuidle 9 10The current interfaces in this directory has self-explanatory names: 11* current_driver 12* current_governor_ro 13 14With cpuidle_sysfs_switch boot option (meant for developer testing) 15following objects are visible instead. 16* current_driver 17* available_governors 18* current_governor 19In this case users can switch the governor at run time by writing 20to current_governor. 21 22 23Per logical CPU specific cpuidle information are under 24/sys/devices/system/cpu/cpuX/cpuidle 25for each online cpu X 26 27-------------------------------------------------------------------------------- 28# ls -lR /sys/devices/system/cpu/cpu0/cpuidle/ 29/sys/devices/system/cpu/cpu0/cpuidle/: 30total 0 31drwxr-xr-x 2 root root 0 Feb 8 10:42 state0 32drwxr-xr-x 2 root root 0 Feb 8 10:42 state1 33drwxr-xr-x 2 root root 0 Feb 8 10:42 state2 34drwxr-xr-x 2 root root 0 Feb 8 10:42 state3 35 36/sys/devices/system/cpu/cpu0/cpuidle/state0: 37total 0 38-r--r--r-- 1 root root 4096 Feb 8 10:42 desc 39-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable 40-r--r--r-- 1 root root 4096 Feb 8 10:42 latency 41-r--r--r-- 1 root root 4096 Feb 8 10:42 name 42-r--r--r-- 1 root root 4096 Feb 8 10:42 power 43-r--r--r-- 1 root root 4096 Feb 8 10:42 residency 44-r--r--r-- 1 root root 4096 Feb 8 10:42 time 45-r--r--r-- 1 root root 4096 Feb 8 10:42 usage 46 47/sys/devices/system/cpu/cpu0/cpuidle/state1: 48total 0 49-r--r--r-- 1 root root 4096 Feb 8 10:42 desc 50-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable 51-r--r--r-- 1 root root 4096 Feb 8 10:42 latency 52-r--r--r-- 1 root root 4096 Feb 8 10:42 name 53-r--r--r-- 1 root root 4096 Feb 8 10:42 power 54-r--r--r-- 1 root root 4096 Feb 8 10:42 residency 55-r--r--r-- 1 root root 4096 Feb 8 10:42 time 56-r--r--r-- 1 root root 4096 Feb 8 10:42 usage 57 58/sys/devices/system/cpu/cpu0/cpuidle/state2: 59total 0 60-r--r--r-- 1 root root 4096 Feb 8 10:42 desc 61-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable 62-r--r--r-- 1 root root 4096 Feb 8 10:42 latency 63-r--r--r-- 1 root root 4096 Feb 8 10:42 name 64-r--r--r-- 1 root root 4096 Feb 8 10:42 power 65-r--r--r-- 1 root root 4096 Feb 8 10:42 residency 66-r--r--r-- 1 root root 4096 Feb 8 10:42 time 67-r--r--r-- 1 root root 4096 Feb 8 10:42 usage 68 69/sys/devices/system/cpu/cpu0/cpuidle/state3: 70total 0 71-r--r--r-- 1 root root 4096 Feb 8 10:42 desc 72-rw-r--r-- 1 root root 4096 Feb 8 10:42 disable 73-r--r--r-- 1 root root 4096 Feb 8 10:42 latency 74-r--r--r-- 1 root root 4096 Feb 8 10:42 name 75-r--r--r-- 1 root root 4096 Feb 8 10:42 power 76-r--r--r-- 1 root root 4096 Feb 8 10:42 residency 77-r--r--r-- 1 root root 4096 Feb 8 10:42 time 78-r--r--r-- 1 root root 4096 Feb 8 10:42 usage 79-------------------------------------------------------------------------------- 80 81 82* desc : Small description about the idle state (string) 83* disable : Option to disable this idle state (bool) -> see note below 84* latency : Latency to exit out of this idle state (in microseconds) 85* residency : Time after which a state becomes more effecient than any 86 shallower state (in microseconds) 87* name : Name of the idle state (string) 88* power : Power consumed while in this idle state (in milliwatts) 89* time : Total time spent in this idle state (in microseconds) 90* usage : Number of times this state was entered (count) 91 92Note: 93The behavior and the effect of the disable variable depends on the 94implementation of a particular governor. In the ladder governor, for 95example, it is not coherent, i.e. if one is disabling a light state, 96then all deeper states are disabled as well, but the disable variable 97does not reflect it. Likewise, if one enables a deep state but a lighter 98state still is disabled, then this has no effect. 99