123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- Supporting multiple CPU idle levels in kernel
- cpuidle sysfs
- System global cpuidle related information and tunables are under
- /sys/devices/system/cpu/cpuidle
- The current interfaces in this directory has self-explanatory names:
- * current_driver
- * current_governor_ro
- With cpuidle_sysfs_switch boot option (meant for developer testing)
- following objects are visible instead.
- * current_driver
- * available_governors
- * current_governor
- In this case users can switch the governor at run time by writing
- to current_governor.
- Per logical CPU specific cpuidle information are under
- /sys/devices/system/cpu/cpuX/cpuidle
- for each online cpu X
- --------------------------------------------------------------------------------
- # ls -lR /sys/devices/system/cpu/cpu0/cpuidle/
- /sys/devices/system/cpu/cpu0/cpuidle/:
- total 0
- drwxr-xr-x 2 root root 0 Feb 8 10:42 state0
- drwxr-xr-x 2 root root 0 Feb 8 10:42 state1
- drwxr-xr-x 2 root root 0 Feb 8 10:42 state2
- drwxr-xr-x 2 root root 0 Feb 8 10:42 state3
- /sys/devices/system/cpu/cpu0/cpuidle/state0:
- total 0
- -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
- -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
- -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
- -r--r--r-- 1 root root 4096 Feb 8 10:42 name
- -r--r--r-- 1 root root 4096 Feb 8 10:42 power
- -r--r--r-- 1 root root 4096 Feb 8 10:42 time
- -r--r--r-- 1 root root 4096 Feb 8 10:42 usage
- /sys/devices/system/cpu/cpu0/cpuidle/state1:
- total 0
- -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
- -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
- -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
- -r--r--r-- 1 root root 4096 Feb 8 10:42 name
- -r--r--r-- 1 root root 4096 Feb 8 10:42 power
- -r--r--r-- 1 root root 4096 Feb 8 10:42 time
- -r--r--r-- 1 root root 4096 Feb 8 10:42 usage
- /sys/devices/system/cpu/cpu0/cpuidle/state2:
- total 0
- -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
- -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
- -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
- -r--r--r-- 1 root root 4096 Feb 8 10:42 name
- -r--r--r-- 1 root root 4096 Feb 8 10:42 power
- -r--r--r-- 1 root root 4096 Feb 8 10:42 time
- -r--r--r-- 1 root root 4096 Feb 8 10:42 usage
- /sys/devices/system/cpu/cpu0/cpuidle/state3:
- total 0
- -r--r--r-- 1 root root 4096 Feb 8 10:42 desc
- -rw-r--r-- 1 root root 4096 Feb 8 10:42 disable
- -r--r--r-- 1 root root 4096 Feb 8 10:42 latency
- -r--r--r-- 1 root root 4096 Feb 8 10:42 name
- -r--r--r-- 1 root root 4096 Feb 8 10:42 power
- -r--r--r-- 1 root root 4096 Feb 8 10:42 time
- -r--r--r-- 1 root root 4096 Feb 8 10:42 usage
- --------------------------------------------------------------------------------
- * desc : Small description about the idle state (string)
- * disable : Option to disable this idle state (bool) -> see note below
- * latency : Latency to exit out of this idle state (in microseconds)
- * name : Name of the idle state (string)
- * power : Power consumed while in this idle state (in milliwatts)
- * time : Total time spent in this idle state (in microseconds)
- * usage : Number of times this state was entered (count)
- Note:
- The behavior and the effect of the disable variable depends on the
- implementation of a particular governor. In the ladder governor, for
- example, it is not coherent, i.e. if one is disabling a light state,
- then all deeper states are disabled as well, but the disable variable
- does not reflect it. Likewise, if one enables a deep state but a lighter
- state still is disabled, then this has no effect.
|