Loading arch/arm64/kernel/process.c +10 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,16 @@ void arch_cpu_idle(void) trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); } void arch_cpu_idle_enter(void) { idle_notifier_call_chain(IDLE_START); } void arch_cpu_idle_exit(void) { idle_notifier_call_chain(IDLE_END); } #ifdef CONFIG_HOTPLUG_CPU void arch_cpu_idle_dead(void) { Loading include/linux/cpu.h +7 −0 Original line number Diff line number Diff line Loading @@ -189,4 +189,11 @@ static inline void cpu_smt_check_topology_early(void) { } static inline void cpu_smt_check_topology(void) { } #endif #define IDLE_START 1 #define IDLE_END 2 void idle_notifier_register(struct notifier_block *n); void idle_notifier_unregister(struct notifier_block *n); void idle_notifier_call_chain(unsigned long val); #endif /* _LINUX_CPU_H_ */ kernel/cpu.c +20 −0 Original line number Diff line number Diff line Loading @@ -2291,3 +2291,23 @@ void __init boot_cpu_hotplug_init(void) #endif this_cpu_write(cpuhp_state.state, CPUHP_ONLINE); } static ATOMIC_NOTIFIER_HEAD(idle_notifier); void idle_notifier_register(struct notifier_block *n) { atomic_notifier_chain_register(&idle_notifier, n); } EXPORT_SYMBOL_GPL(idle_notifier_register); void idle_notifier_unregister(struct notifier_block *n) { atomic_notifier_chain_unregister(&idle_notifier, n); } EXPORT_SYMBOL_GPL(idle_notifier_unregister); void idle_notifier_call_chain(unsigned long val) { atomic_notifier_call_chain(&idle_notifier, val, NULL); } EXPORT_SYMBOL_GPL(idle_notifier_call_chain); Loading
arch/arm64/kernel/process.c +10 −0 Original line number Diff line number Diff line Loading @@ -88,6 +88,16 @@ void arch_cpu_idle(void) trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); } void arch_cpu_idle_enter(void) { idle_notifier_call_chain(IDLE_START); } void arch_cpu_idle_exit(void) { idle_notifier_call_chain(IDLE_END); } #ifdef CONFIG_HOTPLUG_CPU void arch_cpu_idle_dead(void) { Loading
include/linux/cpu.h +7 −0 Original line number Diff line number Diff line Loading @@ -189,4 +189,11 @@ static inline void cpu_smt_check_topology_early(void) { } static inline void cpu_smt_check_topology(void) { } #endif #define IDLE_START 1 #define IDLE_END 2 void idle_notifier_register(struct notifier_block *n); void idle_notifier_unregister(struct notifier_block *n); void idle_notifier_call_chain(unsigned long val); #endif /* _LINUX_CPU_H_ */
kernel/cpu.c +20 −0 Original line number Diff line number Diff line Loading @@ -2291,3 +2291,23 @@ void __init boot_cpu_hotplug_init(void) #endif this_cpu_write(cpuhp_state.state, CPUHP_ONLINE); } static ATOMIC_NOTIFIER_HEAD(idle_notifier); void idle_notifier_register(struct notifier_block *n) { atomic_notifier_chain_register(&idle_notifier, n); } EXPORT_SYMBOL_GPL(idle_notifier_register); void idle_notifier_unregister(struct notifier_block *n) { atomic_notifier_chain_unregister(&idle_notifier, n); } EXPORT_SYMBOL_GPL(idle_notifier_unregister); void idle_notifier_call_chain(unsigned long val) { atomic_notifier_call_chain(&idle_notifier, val, NULL); } EXPORT_SYMBOL_GPL(idle_notifier_call_chain);