diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-02 17:55:17 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-02 17:55:17 -0500 |
commit | 67f592c8f681061d69c621b97a868e679c8a77be (patch) | |
tree | 7f67d80f53b8bbf88cc2786ac5a3e8748dd7a7c7 /drivers/acpi/processor_idle.c | |
parent | b00783fd90388d221dabd4df2affeea7da2363cd (diff) |
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 <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/acpi/processor_idle.c')
-rw-r--r-- | drivers/acpi/processor_idle.c | 8 |
1 files changed, 0 insertions, 8 deletions
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, | |||
791 | if (cx->type == ACPI_STATE_C3) | 791 | if (cx->type == ACPI_STATE_C3) |
792 | ACPI_FLUSH_CPU_CACHE(); | 792 | ACPI_FLUSH_CPU_CACHE(); |
793 | 793 | ||
794 | /* Tell the scheduler that we are going deep-idle: */ | ||
795 | sched_clock_idle_sleep_event(); | ||
796 | acpi_idle_do_entry(cx); | 794 | acpi_idle_do_entry(cx); |
797 | 795 | ||
798 | sched_clock_idle_wakeup_event(0); | ||
799 | |||
800 | lapic_timer_state_broadcast(pr, cx, 0); | 796 | lapic_timer_state_broadcast(pr, cx, 0); |
801 | return index; | 797 | return index; |
802 | } | 798 | } |
@@ -842,8 +838,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
842 | 838 | ||
843 | acpi_unlazy_tlb(smp_processor_id()); | 839 | acpi_unlazy_tlb(smp_processor_id()); |
844 | 840 | ||
845 | /* Tell the scheduler that we are going deep-idle: */ | ||
846 | sched_clock_idle_sleep_event(); | ||
847 | /* | 841 | /* |
848 | * Must be done before busmaster disable as we might need to | 842 | * Must be done before busmaster disable as we might need to |
849 | * access HPET ! | 843 | * access HPET ! |
@@ -881,8 +875,6 @@ static int acpi_idle_enter_bm(struct cpuidle_device *dev, | |||
881 | raw_spin_unlock(&c3_lock); | 875 | raw_spin_unlock(&c3_lock); |
882 | } | 876 | } |
883 | 877 | ||
884 | sched_clock_idle_wakeup_event(0); | ||
885 | |||
886 | lapic_timer_state_broadcast(pr, cx, 0); | 878 | lapic_timer_state_broadcast(pr, cx, 0); |
887 | return index; | 879 | return index; |
888 | } | 880 | } |