acpi_idle_enter_simple() and acpi_idle_enter_bm() don't need to
call sched_clock_idle_sleep/wakeup_event(), because that's taken
care of by the core already. Namely, sched_clock_idle_sleep_event()
is called by tick_nohz_start_idle() called by __tick_nohz_idle_enter()
which in turn is called by tick_nohz_idle_enter() and that is called
by cpu_idle_loop(). Analogously for sched_clock_idle_wakeup_event().
For this reason, drop those calls from the ACPI cpuidle driver's
->enter callback routines.
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
if (cx->type == ACPI_STATE_C3)
ACPI_FLUSH_CPU_CACHE();
- /* Tell the scheduler that we are going deep-idle: */
- sched_clock_idle_sleep_event();
acpi_idle_do_entry(cx);
- sched_clock_idle_wakeup_event(0);
-
lapic_timer_state_broadcast(pr, cx, 0);
return index;
}
acpi_unlazy_tlb(smp_processor_id());
- /* Tell the scheduler that we are going deep-idle: */
- sched_clock_idle_sleep_event();
/*
* Must be done before busmaster disable as we might need to
* access HPET !
raw_spin_unlock(&c3_lock);
}
- sched_clock_idle_wakeup_event(0);
-
lapic_timer_state_broadcast(pr, cx, 0);
return index;
}