idle.c (a01353cf1896ea5b8a7bbc5e2b2d38feed8b7aaa) | idle.c (89b3098703bd2aa3237ef10a704e6a5838e6ea69) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Generic entry points for the idle threads and 4 * implementation of the idle task scheduling class. 5 * 6 * (NOTE: these are not related to SCHED_IDLE batch scheduled 7 * tasks which are handled in sched/fair.c ) 8 */ --- 65 unchanged lines hidden (view full) --- 74/* Weak implementations for optional arch specific functions */ 75void __weak arch_cpu_idle_prepare(void) { } 76void __weak arch_cpu_idle_enter(void) { } 77void __weak arch_cpu_idle_exit(void) { } 78void __weak arch_cpu_idle_dead(void) { } 79void __weak arch_cpu_idle(void) 80{ 81 cpu_idle_force_poll = 1; | 1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Generic entry points for the idle threads and 4 * implementation of the idle task scheduling class. 5 * 6 * (NOTE: these are not related to SCHED_IDLE batch scheduled 7 * tasks which are handled in sched/fair.c ) 8 */ --- 65 unchanged lines hidden (view full) --- 74/* Weak implementations for optional arch specific functions */ 75void __weak arch_cpu_idle_prepare(void) { } 76void __weak arch_cpu_idle_enter(void) { } 77void __weak arch_cpu_idle_exit(void) { } 78void __weak arch_cpu_idle_dead(void) { } 79void __weak arch_cpu_idle(void) 80{ 81 cpu_idle_force_poll = 1; |
82 raw_local_irq_enable(); | |
83} 84 85/** 86 * default_idle_call - Default CPU idle routine. 87 * 88 * To use when the cpuidle framework cannot be used. 89 */ 90void __cpuidle default_idle_call(void) 91{ 92 instrumentation_begin(); 93 if (!current_clr_polling_and_test()) { 94 trace_cpu_idle(1, smp_processor_id()); 95 stop_critical_timings(); 96 97 ct_cpuidle_enter(); 98 arch_cpu_idle(); | 82} 83 84/** 85 * default_idle_call - Default CPU idle routine. 86 * 87 * To use when the cpuidle framework cannot be used. 88 */ 89void __cpuidle default_idle_call(void) 90{ 91 instrumentation_begin(); 92 if (!current_clr_polling_and_test()) { 93 trace_cpu_idle(1, smp_processor_id()); 94 stop_critical_timings(); 95 96 ct_cpuidle_enter(); 97 arch_cpu_idle(); |
99 raw_local_irq_disable(); | |
100 ct_cpuidle_exit(); 101 102 start_critical_timings(); 103 trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); 104 } 105 local_irq_enable(); 106 instrumentation_end(); 107} --- 397 unchanged lines hidden --- | 98 ct_cpuidle_exit(); 99 100 start_critical_timings(); 101 trace_cpu_idle(PWR_EVENT_EXIT, smp_processor_id()); 102 } 103 local_irq_enable(); 104 instrumentation_end(); 105} --- 397 unchanged lines hidden --- |