[GIT] idle patches for 2.6.40.merge

[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/lenb/linux-idle-2.6.git idle-release

This will update the files shown below.

thanks!

Len Brown
Intel Open Source Technology Center

ps. individual patches are available on linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx

 Documentation/feature-removal-schedule.txt |   36 +++++++++++++++++++++++
 arch/x86/include/asm/acpi.h                |    2 +-
 arch/x86/include/asm/idle.h                |    2 +-
 arch/x86/include/asm/processor.h           |    4 +-
 arch/x86/kernel/apm_32.c                   |    2 +
 arch/x86/kernel/cpu/bugs.c                 |    1 +
 arch/x86/kernel/cpu/common.c               |    2 +-
 arch/x86/kernel/process.c                  |   43 +++++++++++++++-------------
 arch/x86/kernel/smpboot.c                  |    2 +-
 drivers/acpi/processor_idle.c              |    2 +-
 drivers/block/floppy.c                     |    1 +
 drivers/cpuidle/governors/menu.c           |    4 ++-
 include/linux/pm_qos_params.h              |    4 ++
 kernel/pm_qos_params.c                     |   37 ++++++++++++++++--------
 14 files changed, 102 insertions(+), 40 deletions(-)

through these commits:

Len Brown (6):
      x86 idle: clarify AMD erratum 400 workaround
      x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it
      x86 idle floppy: deprecate disable_hlt()
      x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
      x86 idle: deprecate "no-hlt" cmdline param
      x86 idle: deprecate mwait_idle() and "idle=mwait" cmdline param

Tero Kristo (1):
      cpuidle: menu: fixed wrapping timers at 4.294 seconds

Tim Chen (1):
      idle governor: Avoid lock acquisition to read pm_qos before entering idle

with this log:

commit c14d878367418975b2c96e07695377d086f40027
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 15:46:09 2011 -0400

    x86 idle: deprecate mwait_idle() and "idle=mwait" cmdline param
    
    mwait_idle() is a C1-only idle loop intended to be more efficient
    than HLT on SMP hardware that supports it.
    
    But mwait_idle() has been replaced by the more general
    mwait_idle_with_hints(), which handles both C1 and deeper C-states.
    ACPI uses only mwait_idle_with_hints(), and never uses mwait_idle().
    
    Deprecate mwait_idle() and the "idle=mwait" cmdline param
    to simplify the x86 idle code.
    
    After this change, kernels configured with
    (!CONFIG_ACPI=n && !CONFIG_INTEL_IDLE=n) when run on hardware
    that support MWAIT will simply use HLT.  If MWAIT is desired
    on those systems, cpuidle and the cpuidle drivers above
    can be used.
    
    cc: x86@xxxxxxxxxx
    cc: stable@xxxxxxxxxx # .39.x
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit e5067870594711fde0de485d0c67cf93c7190628
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 15:41:17 2011 -0400

    x86 idle: deprecate "no-hlt" cmdline param
    
    We'd rather that modern machines not check if HLT works on
    every entry into idle, for the benefit of machines that had
    marginal electricals 15-years ago.  If those machines are still running
    the upstream kernel, they can use "idle=poll".  The only difference
    will be that they'll now invoke HLT in machine_hlt().
    
    cc: x86@xxxxxxxxxx # .39.x
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 15844b48259c643a5ef6f4877ce4c241d7a587b4
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 15:19:23 2011 -0400

    x86 idle APM: deprecate CONFIG_APM_CPU_IDLE
    
    We don't want to export the pm_idle function pointer to modules.
    Currently CONFIG_APM_CPU_IDLE w/ CONFIG_APM_MODULE forces us to.
    
    CONFIG_APM_CPU_IDLE is of dubious value, it runs only on 32-bit
    uniprocessor laptops that are over 10 years old.  It calls into
    the BIOS during idle, and is known to cause a number of machines
    to fail.
    
    Removing CONFIG_APM_CPU_IDLE and will allow us to stop exporting
    pm_idle.  Any systems that were calling into the APM BIOS
    at run-time will simply use HLT instead.
    
    cc: x86@xxxxxxxxxx
    cc: Jiri Kosina <jkosina@xxxxxxx>
    cc: stable@xxxxxxxxxx # .39.x
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 4679268576e84c36080c247a553484ccbd10d4e6
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 15:08:48 2011 -0400

    x86 idle floppy: deprecate disable_hlt()
    
    Plan to remove floppy_disable_hlt in 2012, an ancient
    workaround with comments that it should be removed.
    
    This allows us to remove clutter and a run-time branch
    from the idle code.
    
    WARN_ONCE() on invocation until it is removed.
    
    cc: x86@xxxxxxxxxx
    cc: stable@xxxxxxxxxx # .39.x
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit f07911145ceb74a7b971d0dff252d8be637bb8a9
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 15:28:09 2011 -0400

    x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM demands it
    
    In the long run, we don't want default_idle() or (pm_idle)() to
    be exported outside of process.c.  Start by not exporting them
    to modules, unless the APM build demands it.
    
    cc: x86@xxxxxxxxxx
    cc: Jiri Kosina <jkosina@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 51a52dded2e825b962f25319dee0713d7782f6e7
Author: Len Brown <len.brown@xxxxxxxxx>
Date:   Fri Apr 1 16:59:53 2011 -0400

    x86 idle: clarify AMD erratum 400 workaround
    
    The workaround for AMD erratum 400 uses the term "c1e" falsely suggesting:
    1. Intel C1E is somehow involved
    2. All AMD processors with C1E are involved
    
    Use the string "amd_c1e" instead of simply "c1e" to clarify that
    this workaround is specific to AMD's version of C1E.
    Use the string "e400" to clarify that the workaround is specific
    to AMD processors with Erratum 400.
    
    This patch is text-substitution only, with no functional change.
    
    cc: x86@xxxxxxxxxx
    Acked-by: Borislav Petkov <borislav.petkov@xxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 333c5ae9948194428fe6c5ef5c088304fc98263b
Author: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
Date:   Fri Feb 11 12:49:04 2011 -0800

    idle governor: Avoid lock acquisition to read pm_qos before entering idle
    
    Thanks to the reviews and comments by Rafael, James, Mark and Andi.
    Here's version 2 of the patch incorporating your comments and also some
    update to my previous patch comments.
    
    I noticed that before entering idle state, the menu idle governor will
    look up the current pm_qos target value according to the list of qos
    requests received.  This look up currently needs the acquisition of a
    lock to access the list of qos requests to find the qos target value,
    slowing down the entrance into idle state due to contention by multiple
    cpus to access this list.  The contention is severe when there are a lot
    of cpus waking and going into idle.  For example, for a simple workload
    that has 32 pair of processes ping ponging messages to each other, where
    64 cpu cores are active in test system, I see the following profile with
    37.82% of cpu cycles spent in contention of pm_qos_lock:
    
    -     37.82%          swapper  [kernel.kallsyms]          [k]
    _raw_spin_lock_irqsave
       - _raw_spin_lock_irqsave
          - 95.65% pm_qos_request
               menu_select
               cpuidle_idle_call
             - cpu_idle
                  99.98% start_secondary
    
    A better approach will be to cache the updated pm_qos target value so
    reading it does not require lock acquisition as in the patch below.
    With this patch the contention for pm_qos_lock is removed and I saw a
    2.2X increase in throughput for my message passing workload.
    
    cc: stable@xxxxxxxxxx
    Signed-off-by: Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx>
    Acked-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
    Acked-by: James Bottomley <James.Bottomley@xxxxxxx>
    Acked-by: mark gross <markgross@xxxxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>

commit 7467571f4480b273007517b26297c07154c73924
Author: Tero Kristo <tero.kristo@xxxxxxxxx>
Date:   Thu Feb 24 17:19:23 2011 +0200

    cpuidle: menu: fixed wrapping timers at 4.294 seconds
    
    Cpuidle menu governor is using u32 as a temporary datatype for storing
    nanosecond values which wrap around at 4.294 seconds. This causes errors
    in predicted sleep times resulting in higher than should be C state
    selection and increased power consumption. This also breaks cpuidle
    state residency statistics.
    
    cc: stable@xxxxxxxxxx # .32.x through .39.x
    Signed-off-by: Tero Kristo <tero.kristo@xxxxxxxxx>
    Signed-off-by: Len Brown <len.brown@xxxxxxxxx>
_______________________________________________
linux-pm mailing list
linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linux-foundation.org/mailman/listinfo/linux-pm


[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux