[GIT PULL] Updates related to suspend-to-idle for 3.20-rc1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

Please pull from

 git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
 suspend-to-idle-3.20-rc1

to receive changes adding support for quiescing timers during suspend-to-idle
for v3.20-rc1 with top-most commit c7fb90dfbef49b03e6f3fd6a32338e59cbcf34ee

 ACPI / idle: Implement ->enter_freeze callback routine

on top of commit 18320f2a6871aaf2522f793fee4a67eccf5e131a

 Merge tag 'pm+acpi-3.20-rc1-2' of
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm

This has been in the works for a few months and reached the point
when it is not useful to hold off pushing it any more.

Till now suspend-to-idle has not been able to save much more energy
than runtime PM because of timer interrupts that periodically bring
CPUs out of idle while they are waiting for a wakeup interrupt.  Of
course, the timer interrupts are not wakeup ones, so the handling of
them can be deferred until a real wakeup interrupt happens, but at
the same time we don't want to mass-expire timers at that point.

The solution is to suspend the entire timekeeping when the last CPU
is entering an idle state and resume it when the first CPU goes out
of idle.  That has to be done with care, though, so as to avoid
accessing suspended clocksources etc. end we need extra support
from idle drivers for that.

This series of commits adds support for quiescing timers during
suspend-to-idle and adds the requisite callbacks to intel_idle
and the ACPI cpuidle driver.  It contains a fix for an issue present
today which is very very difficult to trip over (that would involve
an NMI being traced during very late suspend or very early resume
when we're running with suspended timekeeping).

Thanks!


---------------

Rafael J. Wysocki (6):
      PM / sleep: Re-implement suspend-to-idle handling
      timekeeping: Pass readout base to update_fast_timekeeper()
      timekeeping: Make it safe to use the fast timekeeper while suspended
      PM / sleep: Make it possible to quiesce timers during suspend-to-idle
      intel_idle: Add ->enter_freeze callbacks
      ACPI / idle: Implement ->enter_freeze callback routine

---------------

 drivers/acpi/processor_idle.c |  48 +++++++++--
 drivers/cpuidle/cpuidle.c     |  94 ++++++++++++++++------
 drivers/idle/intel_idle.c     | 179 +++++++++++++++++++++++++++++-------------
 include/linux/cpuidle.h       |  13 ++-
 include/linux/suspend.h       |  16 ++++
 include/linux/tick.h          |   6 +-
 kernel/power/suspend.c        |  43 ++++++++--
 kernel/sched/idle.c           |  16 ++++
 kernel/time/tick-common.c     |  50 ++++++++++++
 kernel/time/timekeeping.c     |  48 ++++++++---
 kernel/time/timekeeping.h     |   2 +
 11 files changed, 407 insertions(+), 108 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux