Commit | Line | Data |
---|---|---|
fe8e288a VP |
1 | |
2 | ||
3 | Supporting multiple CPU idle levels in kernel | |
4 | ||
5 | cpuidle sysfs | |
6 | ||
7 | System global cpuidle related information and tunables are under | |
8 | /sys/devices/system/cpu/cpuidle | |
9 | ||
10 | The current interfaces in this directory has self-explanatory names: | |
11 | * current_driver | |
12 | * current_governor_ro | |
13 | ||
14 | With cpuidle_sysfs_switch boot option (meant for developer testing) | |
15 | following objects are visible instead. | |
16 | * current_driver | |
17 | * available_governors | |
18 | * current_governor | |
19 | In this case users can switch the governor at run time by writing | |
20 | to current_governor. | |
21 | ||
22 | ||
23 | Per logical CPU specific cpuidle information are under | |
24 | /sys/devices/system/cpu/cpuX/cpuidle | |
25 | for each online cpu X | |
26 | ||
27 | -------------------------------------------------------------------------------- | |
28 | # ls -lR /sys/devices/system/cpu/cpu0/cpuidle/ | |
29 | /sys/devices/system/cpu/cpu0/cpuidle/: | |
30 | total 0 | |
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 | |
35 | ||
36 | /sys/devices/system/cpu/cpu0/cpuidle/state0: | |
37 | total 0 | |
38 | -r--r--r-- 1 root root 4096 Feb 8 10:42 desc | |
3a53396b | 39 | -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable |
fe8e288a VP |
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 | |
792ccb45 | 43 | -r--r--r-- 1 root root 4096 Feb 8 10:42 residency |
fe8e288a VP |
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: | |
48 | total 0 | |
49 | -r--r--r-- 1 root root 4096 Feb 8 10:42 desc | |
3a53396b | 50 | -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable |
fe8e288a VP |
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 | |
792ccb45 | 54 | -r--r--r-- 1 root root 4096 Feb 8 10:42 residency |
fe8e288a VP |
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: | |
59 | total 0 | |
60 | -r--r--r-- 1 root root 4096 Feb 8 10:42 desc | |
3a53396b | 61 | -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable |
fe8e288a VP |
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 | |
792ccb45 | 65 | -r--r--r-- 1 root root 4096 Feb 8 10:42 residency |
fe8e288a VP |
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: | |
70 | total 0 | |
71 | -r--r--r-- 1 root root 4096 Feb 8 10:42 desc | |
3a53396b | 72 | -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable |
fe8e288a VP |
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 | |
792ccb45 | 76 | -r--r--r-- 1 root root 4096 Feb 8 10:42 residency |
fe8e288a VP |
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) | |
62d6ae88 | 83 | * disable : Option to disable this idle state (bool) -> see note below |
fe8e288a | 84 | * latency : Latency to exit out of this idle state (in microseconds) |
792ccb45 PP |
85 | * residency : Time after which a state becomes more effecient than any |
86 | shallower state (in microseconds) | |
fe8e288a VP |
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) | |
62d6ae88 CE |
91 | |
92 | Note: | |
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. |