[lkml]   [2013]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[RFC V2 PATCH 0/6] cpuidle/ppc: Timer offload framework to support deep idle states
    On PowerPC, when CPUs enter deep idle states, their local timers are
    switched off. The responsibility of waking them up at their next timer event,
    needs to be handed over to an external device. On PowerPC, we do not have an
    external device equivalent to HPET, which is currently done on architectures
    like x86. Instead we assign the local timer of one of the CPUs to do this job.

    This patchset is an attempt to make use of the existing timer broadcast
    framework in the kernel to meet the above requirement, except that the tick
    broadcast device is the local timer of the boot CPU.

    This patch series is ported ontop of 3.11-rc1 + the cpuidle driver backend
    for powernv posted by Deepthi Dharwar recently. NOHZ_FULL is disabled for all
    testing purposes.
    The current design and implementation supports the ONESHOT tick mode.
    It does not yet support the PERIODIC tick mode.

    The discussion around V1 of this patchset can be found here:

    Changes since V1:
    1. Dynamically pick a broadcast CPU, instead of having a dedicated one.
    2. Remove the constraint of having to disable tickless idle on the broadcast CPU.

    Thanks to Ben H, Frederic Weisbecker, Li Yang and Vaidyanathan Srinivasan for
    all their comments and suggestions on the V1 of this patchset.

    Patch[1/6], Patch[2/6]: optimize the broadcast mechanism on ppc.
    Patch[3/6]: Introduces the core of the timer offload framework on powerpc.
    Patch[4/6]: Add a deep idle state to the cpuidle state table on powernv
    Patch[5/6]: Dynamically pick a broadcast CPU
    Patch[6/6]: Remove the constraint of having to disable tickless idle on the
    broadcast cpu, by queueing a hrtimer exclusively to do broadcast handling.


    Preeti U Murthy (4):
    cpuidle/ppc: Add timer offload framework to support deep idle states
    cpuidle/ppc: Add longnap state to the idle states on powernv
    cpuidle/ppc: Enable dynamic movement of the broadcast functionality across CPUs
    cpuidle/ppc : Queue a hrtimer on bc_cpu, explicitly to do broadcast handling

    Srivatsa S. Bhat (2):
    powerpc: Free up the IPI message slot of ipi call function (PPC_MSG_CALL_FUNC)
    powerpc: Implement broadcast timer interrupt as an IPI message

    arch/powerpc/include/asm/smp.h | 3 -
    arch/powerpc/include/asm/time.h | 9 ++
    arch/powerpc/kernel/smp.c | 23 +++--
    arch/powerpc/kernel/time.c | 114 +++++++++++++++++++++++
    arch/powerpc/platforms/cell/interrupt.c | 2
    arch/powerpc/platforms/powernv/Kconfig | 1
    arch/powerpc/platforms/powernv/processor_idle.c | 104 +++++++++++++++++++++
    arch/powerpc/platforms/ps3/smp.c | 2
    8 files changed, 246 insertions(+), 12 deletions(-)

     \ /
      Last update: 2013-08-14 14:21    [W:0.034 / U:4.556 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site