3 Supporting multiple CPU idle levels in kernel
7 System global cpuidle related information and tunables are under
8 /sys/devices/system/cpu/cpuidle
10 The current interfaces in this directory has self-explanatory names:
14 With cpuidle_sysfs_switch boot option (meant for developer testing)
15 following objects are visible instead.
19 In this case users can switch the governor at run time by writing
23 Per logical CPU specific cpuidle information are under
24 /sys/devices/system/cpu/cpuX/cpuidle
27 --------------------------------------------------------------------------------
28 # ls -lR /sys/devices/system/cpu/cpu0/cpuidle/
29 /sys/devices/system/cpu/cpu0/cpuidle/:
31 drwxr-xr-x 2 root root 0 Feb 8 10:42 state0
32 drwxr-xr-x 2 root root 0 Feb 8 10:42 state1
33 drwxr-xr-x 2 root root 0 Feb 8 10:42 state2
34 drwxr-xr-x 2 root root 0 Feb 8 10:42 state3
36 /sys/devices/system/cpu/cpu0/cpuidle/state0:
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
47 /sys/devices/system/cpu/cpu0/cpuidle/state1:
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
58 /sys/devices/system/cpu/cpu0/cpuidle/state2:
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
69 /sys/devices/system/cpu/cpu0/cpuidle/state3:
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 --------------------------------------------------------------------------------
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)
93 The behavior and the effect of the disable variable depends on the
94 implementation of a particular governor. In the ladder governor, for
95 example, it is not coherent, i.e. if one is disabling a light state,
96 then all deeper states are disabled as well, but the disable variable
97 does not reflect it. Likewise, if one enables a deep state but a lighter
98 state still is disabled, then this has no effect.