95833c83f3
This adds a new notifier chain that is called with IDLE_START when a CPU goes idle and IDLE_END when it goes out of idle. The context can be idle thread or interrupt context. Since we cannot rely on MONITOR/MWAIT existing the idle end check currently has to be done in all interrupt handlers. They were originally inspired by the similar s390 implementation. They have a variety of applications: - They will be needed for CONFIG_NO_IDLE_HZ - They can be used for oprofile to fix up the missing time in idle when performance counters don't tick. - They can be used for better C state management in ACPI - They could be used for microstate accounting. This is just infrastructure so far, no users. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
15 lines
287 B
C
15 lines
287 B
C
#ifndef _ASM_X86_64_IDLE_H
|
|
#define _ASM_X86_64_IDLE_H 1
|
|
|
|
#define IDLE_START 1
|
|
#define IDLE_END 2
|
|
|
|
struct notifier_block;
|
|
void idle_notifier_register(struct notifier_block *n);
|
|
void idle_notifier_unregister(struct notifier_block *n);
|
|
|
|
void enter_idle(void);
|
|
void exit_idle(void);
|
|
|
|
#endif
|