[RFC PATCH 0/5] cpuidle/ppc: Timer offload framework to support deep idle states

Li Yang-R58472 r58472 at freescale.com
Fri Jul 26 20:05:38 EST 2013



> -----Original Message-----
> From: linux-pm-owner at vger.kernel.org [mailto:linux-pm-
> owner at vger.kernel.org] On Behalf Of Preeti U Murthy
> Sent: Thursday, July 25, 2013 5:03 PM
> To: benh at kernel.crashing.org; paul.gortmaker at windriver.com;
> paulus at samba.org; shangw at linux.vnet.ibm.com; galak at kernel.crashing.org;
> fweisbec at gmail.com; paulmck at linux.vnet.ibm.com; michael at ellerman.id.au;
> arnd at arndb.de; linux-pm at vger.kernel.org; rostedt at goodmis.org; rjw at sisk.pl;
> john.stultz at linaro.org; tglx at linutronix.de; Zhao Chenhui-B35336;
> deepthi at linux.vnet.ibm.com; geoff at infradead.org; linux-
> kernel at vger.kernel.org; srivatsa.bhat at linux.vnet.ibm.com;
> schwidefsky at de.ibm.com; svaidy at linux.vnet.ibm.com; linuxppc-
> dev at lists.ozlabs.org
> Subject: [RFC PATCH 0/5] 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.

I don't know much about the deep idle states.  But is it necessary to turn off the timer in these states?  I mean the extra work needed on the booting CPU and re-syncing Time Base after wakeup might defeat the power consumption benefit of turning off the timer.

Btw, the Open PIC has an internal timer.  Can we use it as the wakeup event?

Regards,
Leo

> 
> 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. The current
> design and implementation supports the ONESHOT tick mode. It does not yet
> support the PERIODIC tick mode. This patch is tested with NOHZ_FULL off.
> 
> Patch[1/5], Patch[2/5]: optimize the broadcast mechanism on ppc.
> Patch[3/5]: Introduces the core of the timer offload framework on powerpc.
> Patch[4/5]: The cpu doing the broadcast should not go into tickless idle.
> Patch[5/5]: Add a deep idle state to the cpuidle state table on powernv.
> 
> Patch[5/5] is the patch that ultimately makes use of the timer offload
> framework that the patches Patch[1/5] to Patch[4/5] build.
> 
> ---
> 
> Preeti U Murthy (3):
>       cpuidle/ppc: Add timer offload framework to support deep idle
> states
>       cpuidle/ppc: CPU goes tickless if there are no arch-specific
> constraints
>       cpuidle/ppc: Add longnap state to the idle states on powernv
> 
> 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                 |    3 +
>  arch/powerpc/kernel/smp.c                       |   23 ++++--
>  arch/powerpc/kernel/time.c                      |   84
> +++++++++++++++++++++++
>  arch/powerpc/platforms/cell/interrupt.c         |    2 -
>  arch/powerpc/platforms/powernv/Kconfig          |    1
>  arch/powerpc/platforms/powernv/processor_idle.c |   48 +++++++++++++
>  arch/powerpc/platforms/ps3/smp.c                |    2 -
>  kernel/time/tick-sched.c                        |    7 ++
>  9 files changed, 161 insertions(+), 12 deletions(-)
> 
> --
> Signature
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pm" in
> the body of a message to majordomo at vger.kernel.org More majordomo info at
> http://vger.kernel.org/majordomo-info.html



More information about the Linuxppc-dev mailing list