mirror of https://gitee.com/openkylin/linux.git
30 lines
1022 B
Plaintext
30 lines
1022 B
Plaintext
|
|
||
|
|
||
|
|
||
|
Supporting multiple CPU idle levels in kernel
|
||
|
|
||
|
cpuidle governors
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
cpuidle governor is policy routine that decides what idle state to enter at
|
||
|
any given time. cpuidle core uses different callbacks to the governor.
|
||
|
|
||
|
* enable() to enable governor for a particular device
|
||
|
* disable() to disable governor for a particular device
|
||
|
* select() to select an idle state to enter
|
||
|
* reflect() called after returning from the idle state, which can be used
|
||
|
by the governor for some record keeping.
|
||
|
|
||
|
More than one governor can be registered at the same time and
|
||
|
users can switch between drivers using /sysfs interface (when enabled).
|
||
|
More than one governor part is supported for developers to easily experiment
|
||
|
with different governors. By default, most optimal governor based on your
|
||
|
kernel configuration and platform will be selected by cpuidle.
|
||
|
|
||
|
Interfaces:
|
||
|
extern int cpuidle_register_governor(struct cpuidle_governor *gov);
|
||
|
extern void cpuidle_unregister_governor(struct cpuidle_governor *gov);
|
||
|
struct cpuidle_governor
|