ACPI / cpuidle: Drop unnecessary calls from ->enter callback routines
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 2 Feb 2015 22:55:17 +0000 (23:55 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 2 Feb 2015 22:55:17 +0000 (23:55 +0100)
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>
drivers/acpi/processor_idle.c

index f365171645532bf371165298f34adab23e23cffc..ceeff3d473f1eaa4f413ca5ad3f7837be9401571 100644 (file)
@@ -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;
 }