From: Rafael J. Wysocki Date: Mon, 2 Feb 2015 22:55:17 +0000 (+0100) Subject: ACPI / cpuidle: Drop unnecessary calls from ->enter callback routines X-Git-Tag: drm-fsl-dcu-for-next~3825^2~7^2~6 X-Git-Url: http://git.agner.ch/gitweb/?a=commitdiff_plain;h=67f592c8f681061d69c621b97a868e679c8a77be;p=linux-drm-fsl-dcu.git ACPI / cpuidle: Drop unnecessary calls from ->enter callback routines 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 --- diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index f36517164553..ceeff3d473f1 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c @@ -791,12 +791,8 @@ static int acpi_idle_enter_simple(struct cpuidle_device *dev, 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; } @@ -842,8 +838,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, 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 ! @@ -881,8 +875,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, raw_spin_unlock(&c3_lock); } - sched_clock_idle_wakeup_event(0); - lapic_timer_state_broadcast(pr, cx, 0); return index; }