Re: [v10 PATCH 8/9]: pSeries: implement pSeries processor idle module

2009-12-15 Thread Arun R Bharadwaj
* Benjamin Herrenschmidt [2009-12-04 21:00:52]: > On Fri, 2009-12-04 at 13:45 +0530, Arun R Bharadwaj wrote: > > > > > Hi Ben, > > > > I forgot to attach the patch which enables cpuidle for the rest of the > > POWER platforms. Attaching it be

Re: [v10 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-12-07 Thread Arun R Bharadwaj
* Torsten Duwe [2009-12-07 11:17:57]: > On Sunday 06 December 2009, Arun R Bharadwaj wrote: > > > Peter objected to the idea of integrating this with the old pm_idle > > because it has already caused a lot of problems on x86 and we wouldn't > > want to be doing t

Re: [v10 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-12-05 Thread Arun R Bharadwaj
* Torsten Duwe [2009-12-04 23:20:00]: > On Wednesday 02 December 2009, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-12-02 15:24:27]: > > > > This patch cleans up drivers/cpuidle/cpuidle.c > > Earlier cpuidle assumed pm_idle as the default idle loop. Break that

Re: [v10 PATCH 8/9]: pSeries: implement pSeries processor idle module

2009-12-04 Thread Arun R Bharadwaj
* Benjamin Herrenschmidt [2009-12-04 13:47:38]: > On Wed, 2009-12-02 at 15:32 +0530, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-12-02 15:24:27]: > > > > This patch creates arch/powerpc/platforms/pseries/processor_idle.c, > > which implements the cpuidle

Re: [v10 PATCH 9/9]: POWER: Enable default_idle when power_save=off

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:33:46]: Thanks for running checkpatch on the patch Daniel. Will fix this. arun ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev

[v10 PATCH 9/9]: POWER: Enable default_idle when power_save=off

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch enables default_idle when power_save=off kernel boot option is specified. Earlier, this was done by setting ppc_md.power_save = NULL and hence HMT_low() and HMT_very_low() was called. Now this is defined under default_idle() and hence by

[v10 PATCH 8/9]: pSeries: implement pSeries processor idle module

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v10 PATCH 7/9]: POWER: add a default_idle idle loop for POWER

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v10 PATCH 6/9]: pSeries/cpuidle: refactor pseries idle loops

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v10 PATCH 5/9]: POWER: enable cpuidle for POWER.

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v10 PATCH 4/9]: x86: refactor x86 idle power management code, remove all instances of pm_idle

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v10 PATCH 3/9]: cpuidle: implement a list based approach to register a set of idle routines

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v10 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

[v10 PATCH 1/9]: cpuidle: Design documentation patch

2009-12-02 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-12-02 15:24:27]: This patch adds a little information about the redesigned cpuidle infrastructure in Documentation/cpuidle/core.txt Signed-off-by: Arun R Bharadwaj --- Documentation/cpuidle/core.txt | 35 +++ 1 file changed, 35

[v10 PATCH 0/9] cpuidle: cleanup cpuidle/ introduce cpuidle to POWER

2009-12-02 Thread Arun R Bharadwaj
Hi, This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. This patch series has been in discussion for quite a while now and below are the links to the prev

Re: [v9 PATCH 0/9]: cpuidle: Cleanup cpuidle/ Introduce cpuidle to POWER.

2009-11-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: > Hi, > > This patchset introduces cpuidle infrastructure to POWER, prototyping > for pSeries, and also does a major refactoring of current x86 idle > power management and a cleanup of cpuidle infrastructure. > > This pat

Re: [v9 PATCH 4/9]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-26 Thread Arun R Bharadwaj
* Pavel Machek [2009-10-26 08:58:31]: > > > > > +static int local_idle_loop(struct cpuidle_device *dev, struct > > > > cpuidle_state *st) > > > > +{ > > > > + ktime_t t1, t2; > > > > + s64 diff; > > > > + int ret; > > > > + > > > > + t1 = ktime_get(); > > > > + loc

Re: [v9 PATCH 4/9]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-26 Thread Arun R Bharadwaj
* Pavel Machek [2009-10-23 18:07:11]: > On Fri 2009-10-16 15:13:08, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-10-16 15:08:50]: > > > > This patch cleans up x86 of all instances of pm_idle. > > > > pm_idle which was earlier called from cpu_id

[v9 PATCH 9/9]: POWER: Enable default_idle when power_save=off.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch enables default_idle when power_save=off kernel boot option is specified. Earlier, this was done by setting ppc_md.power_save = NULL and hence HMT_low() and HMT_very_low() was called. Now this is defined under default_idle() and hence by

[v9 PATCH 8/9]: pSeries: implement pSeries processor idle module.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v9 PATCH 7/9]: POWER: add a default_idle idle loop for POWER.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v9 PATCH 6/9]: pSeries/cpuidle: refactor pseries idle loops

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v9 PATCH 5/9]: POWER: enable cpuidle for POWER.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v9 PATCH 4/9]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v9 PATCH 3/9]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v9 PATCH 2/9]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

[v9 PATCH 1/9]: cpuidle: Design documentation patch

2009-10-16 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-16 15:08:50]: This patch adds a little information about the redesigned cpuidle infrastructure in Documentation/cpuidle/core.txt Signed-off-by: Arun R Bharadwaj --- Documentation/cpuidle/core.txt | 35 +++ 1 file changed, 35

[v9 PATCH 0/9]: cpuidle: Cleanup cpuidle/ Introduce cpuidle to POWER.

2009-10-16 Thread Arun R Bharadwaj
Hi, This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. This patch series has been in discussion for quite a while now and below are the links to the prev

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-14 Thread Arun R Bharadwaj
* Andi Kleen [2009-10-14 09:18:38]: > > How about something like this.. > > If the arch does not enable CONFIG_CPU_IDLE, the cpuidle_idle_call > > which is called from cpu_idle() should call default_idle without > > involving the registering cpuidle steps. This should prevent bloating > > up of t

Re: [v8 PATCH 1/8]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-10-13 Thread Arun R Bharadwaj
* Balbir Singh [2009-10-12 17:06:02]: > * Arun R B [2009-10-08 15:19:42]: > > > * Arun R Bharadwaj [2009-10-08 15:18:28]: > > > > This patch cleans up drivers/cpuidle/cpuidle.c > > Earlier cpuidle assumed pm_idle as the default idle loop. Break that > >

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-13 Thread Arun R Bharadwaj
* Andi Kleen [2009-10-12 20:00:05]: > Peter Zijlstra writes: > > > > So does it make sense to have a set of sets? > > > > Why not integrate them all into one set to be ruled by this governor > > thing? > > cpuidle is currently optional, that is why the two level hierarchy > is there so that you

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-09 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-08 14:25:37]: > On Thu, 2009-10-08 at 17:31 +0530, Arun R Bharadwaj wrote: > > > > > Uhm, no, it would mean ACPI putting its idle routines on the same level > > > as all others. > > > > > > > Putting them all on

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-08 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-08 13:25:10]: > On Thu, 2009-10-08 at 16:31 +0530, Arun R Bharadwaj wrote: > > * Peter Zijlstra [2009-10-08 12:50:33]: > > > > > On Thu, 2009-10-08 at 16:12 +0530, Arun R Bharadwaj wrote: > > > > > > > > > So cpui

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-08 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-08 12:50:33]: > On Thu, 2009-10-08 at 16:12 +0530, Arun R Bharadwaj wrote: > > > > > So cpuidle didn't already have a list of idle functions it takes an > > > appropriate one from? > > > > > > > No.. As of now,

Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-08 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-08 12:36:02]: > On Thu, 2009-10-08 at 15:20 +0530, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-10-08 15:18:28]: > > > > Implement a list based registering mechanism for architectures which > > have multiple sets of idle routines

[v8 PATCH 8/8]: POWER: Enable default_idle when power_save=off.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch enables default_idle when power_save=off kernel boot option is specified. Earlier, this was done by setting ppc_md.power_save = NULL and hence HMT_low() and HMT_very_low() was called. Now this is defined under default_idle() and hence by

[v8 PATCH 7/8]: pSeries: implement pSeries processor idle module.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v8 PATCH 6/8]: POWER: add a default_idle idle loop for POWER.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v8 PATCH 5/8]: pSeries/cpuidle: remove dedicate/shared idle loops, which will be moved to arch/powerpc/platforms/pseries/processor_idle.c

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v8 PATCH 4/8]: POWER: enable cpuidle for POWER.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v8 PATCH 3/8]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v8 PATCH 1/8]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-10-08 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-08 15:18:28]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

[v8 PATCH 0/8]: cpuidle: Cleanup cpuidle/ Introduce cpuidle to POWER.

2009-10-08 Thread Arun R Bharadwaj
Hi Please consider this for inclusion into the testing tree. This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. Earlier discussions on the same can be f

Re: [v7 PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-07 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-07 16:45:50]: > On Tue, 2009-10-06 at 21:01 +0530, Arun R Bharadwaj wrote: > > +++ linux.trees.git/arch/x86/kernel/process.c > > @@ -9,6 +9,7 @@ > > #include > > #include > > #include > > +#include > > #include

Re: [v7 PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-07 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-10-07 16:45:50]: > On Tue, 2009-10-06 at 21:01 +0530, Arun R Bharadwaj wrote: > > +++ linux.trees.git/arch/x86/kernel/process.c > > @@ -9,6 +9,7 @@ > > #include > > #include > > #include > > +#include > > #include

Re: [v7 PATCH 7/7]: pSeries: implement pSeries processor idle module.

2009-10-07 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 21:05:22]: > * Arun R Bharadwaj [2009-10-06 20:54:21]: Please consider this updated PATCH 7/7 instead of the earlier one. The earlier one had a late_initcall(pseries_processor_idle_init), which caused a panic when cpuidle_enable_device() was called f

Re: [v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: > Hi > > Please consider this for inclusion into the testing tree. > > This patchset introduces cpuidle infrastructure to POWER, prototyping > for pSeries, and also does a major refactoring of current x86 idle > power manage

[v7 PATCH 7/7]: pSeries: implement pSeries processor idle module.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v7 PATCH 6/7]: POWER: add a default_idle idle loop for POWER.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v7 PATCH 5/7]: pSeries/cpuidle: remove dedicate/shared idle loops, which will be moved to arch/powerpc/platforms/pseries/processor_idle.c.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v7 PATCH 4/7]: POWER: enable cpuidle for POWER.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v7 PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v7 PATCH 2/7]: cpuidle: implement a list based approach to register a set of idle routines.

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v7 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-10-06 Thread Arun R Bharadwaj
Hi Please consider this for inclusion into the testing tree. This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. Earlier discussions on the same can be f

[v7 PATCH 1/7]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-10-06 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-10-06 20:54:21]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

Re: [v6 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-09-25 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: Hi, I have done the following experiments and have posted the results below. Average of 5 iterations

Re: [v6 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-09-23 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: Hi Len, (or other acpi folks), I had a question regarding ACPI-cpuidle interaction in the current implementation. Currently, every cpu (i.e. acpi_processor) registers to cpuidle as a cpuidle_device. So every cpu has to go through the process of setting

[v6 PATCH 7/7]: pSeries: implement pSeries processor idle module.

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v6 PATCH 6/7]: POWER: add a default_idle idle loop for POWER.

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v6 PATCH 5/7]: pSeries/cpuidle: remove dedicate/shared idle loops, which will be moved to arch/powerpc/platforms/pseries/processor_idle.c

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v6 PATCH 4/7]: POWER: enable cpuidle for POWER.

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v6 PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v6 PATCH 2/7]: cpuidle: implement a list based approach to register a set of idle routines.

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v6 PATCH 1/7]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-09-22 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 16:55:27]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

[v6 PATCH 0/7]: cpuidle/x86/POWER: Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-09-22 Thread Arun R Bharadwaj
Hi, This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. My earlier iterations can be found at: v5 --> http://lkml.org/lkml/2009/9/22/26 v4 --> http://lkm

Re: [v5 RFC PATCH 0/7]: cpuidle/x86/POWER (REDESIGN): Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-09-22 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-09-22 09:25:59]: > > > Much better :-) > > > But I'm puzzled by all the per-cpu-ish-ness of the stuff. Why would you > need to register things on a per-cpu basis? > > Also: > > > + list_for_each(pos, &per_cpu(cpuidle_devices_list, cpu)) { > + temp

[v5 RFC PATCH 7/7]: POWER/pSeries: implement pSeries processor idle module.

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v5 RFC PATCH 6/7]: POWER: add a default_idle idle loop for POWER.

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: In arch/powerpc/kernel/idle.c create a default_idle() routine by moving the failover condition of the cpu_idle() idle loop. This is needed by cpuidle infrastructure to call default_idle when other idle routines are not yet registered. Functionality

[v5 RFC PATCH 5/7]: POWER/pSeries: remove dedicate/shared idle loops, which will be moved to arch/powerpc/platforms/pseries/processor_idle.c

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: This patch removes the routines, pseries_shared_idle_sleep and pseries_dedicated_idle_sleep, since this is implemented as a part of arch/powerpc/platform/pseries/processor_idle.c Also, similar to x86, call cpuidle_idle_call from cpu_idle() idle loop

[v5 RFC PATCH 4/7]: POWER: enable cpuidle for POWER.

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. Signed-off-by: Arun R Bharadwaj --- arch/powerpc/Kconfig | 14 ++ 1 file changed, 14 insertions(+) Index

[v5 RFC PATCH 3/7]: x86: refactor x86 idle power management code and remove all instances of pm_idle.

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: This patch cleans up x86 of all instances of pm_idle. pm_idle which was earlier called from cpu_idle() idle loop is replaced by cpuidle_idle_call. x86 also registers to cpuidle when the idle routine is selected, by populating the cpuidle_device data

[v5 RFC PATCH 2/7]: cpuidle: implement a list based approach to register a set of idle routines.

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: Implement a list based registering mechanism for architectures which have multiple sets of idle routines which are to be registered. Currently, in x86 it is done by merely setting pm_idle = idle_routine and managing this pm_idle pointer is messy. To

[v5 RFC PATCH 1/7]: cpuidle: cleanup drivers/cpuidle/cpuidle.c

2009-09-21 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-22 11:03:14]: This patch cleans up drivers/cpuidle/cpuidle.c Earlier cpuidle assumed pm_idle as the default idle loop. Break that assumption and make it more generic. cpuidle_idle_call() which is the main idle loop of cpuidle is to be called by architectures which

[v5 RFC PATCH 0/7]: cpuidle/x86/POWER (REDESIGN): Cleanup idle power management code in x86, cleanup drivers/cpuidle/cpuidle.c and introduce cpuidle to POWER.

2009-09-21 Thread Arun R Bharadwaj
Hi, This is an RFC, not for inclusion ** This patchset introduces cpuidle infrastructure to POWER, prototyping for pSeries, and also does a major refactoring of current x86 idle power management and a cleanup of cpuidle infrastructure. My earlier iterations can be found at: v4

Re: [v4 PATCH 1/5]: cpuidle: Cleanup drivers/cpuidle/cpuidle.c

2009-09-02 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-09-02 07:42:24]: > On Tue, 2009-09-01 at 17:08 +0530, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-09-01 17:07:04]: > > > > Cleanup drivers/cpuidle/cpuidle.c > > > > Cpuidle maintains a pm_idle_old void pointer because, currently

Re: [v4 PATCH 1/5]: cpuidle: Cleanup drivers/cpuidle/cpuidle.c

2009-09-01 Thread Arun R Bharadwaj
* Balbir Singh [2009-09-01 22:58:25]: > * Arun R B [2009-09-01 17:08:40]: > > > * Arun R Bharadwaj [2009-09-01 17:07:04]: > > > > Cleanup drivers/cpuidle/cpuidle.c > > > > Cpuidle maintains a pm_idle_old void pointer because, currently in x86 > >

Re: [v4 PATCH 1/5]: cpuidle: Cleanup drivers/cpuidle/cpuidle.c

2009-09-01 Thread Arun R Bharadwaj
* Balbir Singh [2009-09-01 22:58:25]: > * Arun R B [2009-09-01 17:08:40]: > > > * Arun R Bharadwaj [2009-09-01 17:07:04]: > > > > Cleanup drivers/cpuidle/cpuidle.c > > > > Cpuidle maintains a pm_idle_old void pointer because, currently in x86 > >

[v4 PATCH 5/5]: pSeries: Implement pSeries processor idle module.

2009-09-01 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-01 17:07:04]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v4 PATCH 4/5]: cpuidle: Add Kconfig entry to enable cpuidle for POWER.

2009-09-01 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-01 17:07:04]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v4 PATCH 3/5]: pSeries: Incorporate registering of idle loop for pSeries.

2009-09-01 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-01 17:07:04]: Platform needs to register its idle function via register_idle_function() in order to provide a clean way of handling the ppc_md.power_save Signed-off-by: Arun R Bharadwaj --- arch/powerpc/platforms/pseries/setup.c | 13 +++-- 1 file changed

[v4 PATCH 2/5]: cpuidle: Implement routines to register and unregister idle function.

2009-09-01 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-01 17:07:04]: Implement a LIFO based approach for registering arch dependent idle routines. This is a prototype for pseries, needs to be extended for other platforms. Signed-off-by: Arun R Bharadwaj --- arch/powerpc/kernel/idle.c |5 + drivers/cpuidle

[v4 PATCH 1/5]: cpuidle: Cleanup drivers/cpuidle/cpuidle.c

2009-09-01 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-09-01 17:07:04]: Cleanup drivers/cpuidle/cpuidle.c Cpuidle maintains a pm_idle_old void pointer because, currently in x86 there is no clean way of registering and unregistering a idle function. So remove pm_idle_old and leave the responsibility of maintaining the list

[v4 PATCH 0/5]: cpuidle/POWER (REDISIGN): Introducing cpuidle to POWER.

2009-09-01 Thread Arun R Bharadwaj
Hi, This is an RFC, not for inclusion ** This patchset introduces cpuidle infrastructure to POWER, prototyping for pseries and currently in the process of porting to x86 and hence will *not* build on x86/other POWER platforms. This is to get initial comments on the redesign of m

Re: [PATCH 2/4]: CPUIDLE: Introduce architecture independent cpuidle_pm_idle in drivers/cpuidle/cpuidle.c

2009-08-27 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-08-27 14:53:27]: > On Thu, 2009-08-27 at 17:23 +0530, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-08-27 17:19:08]: > > > > Cpuidle infrastructure assumes pm_idle as the default idle routine. > > But, ppc_md.power_save is the defau

Re: [PATCH 2/4]: CPUIDLE: Introduce architecture independent cpuidle_pm_idle in drivers/cpuidle/cpuidle.c

2009-08-27 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-08-27 14:53:27]: Hi Peter, Ben, I've put the whole thing in a sort of a block diagram. Hope it explains things more clearly. |CPUIDLE | (Select idle states like

Re: [PATCH 2/4]: CPUIDLE: Introduce architecture independent cpuidle_pm_idle in drivers/cpuidle/cpuidle.c

2009-08-27 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-08-27 14:53:27]: > On Thu, 2009-08-27 at 17:23 +0530, Arun R Bharadwaj wrote: > > * Arun R Bharadwaj [2009-08-27 17:19:08]: > > > > Cpuidle infrastructure assumes pm_idle as the default idle routine. > > But, ppc_md.power_save is the defau

[PATCH 4/4]: CPUIDLE/POWER: Implement Pseries Processor Idle module

2009-08-27 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-27 17:19:08]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[PATCH 3/4]: ACPI/ARM: Register for cpuidle_pm_idle in drivers/acpi/processor_idle.c and arch/arm/mach-kirkwood/cpuidle.c

2009-08-27 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-27 17:19:08]: Set the idle routine to cpuidle_pm_idle after registering cpuidle devices. Earlier pm_idle was assumed as the defualt idle loop by cpuidle infrastructure. This is changed to an architecture independent cpuidle_pm_idle. There are 2 instances which are

[PATCH 2/4]: CPUIDLE: Introduce architecture independent cpuidle_pm_idle in drivers/cpuidle/cpuidle.c

2009-08-27 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-27 17:19:08]: Cpuidle infrastructure assumes pm_idle as the default idle routine. But, ppc_md.power_save is the default idle callback in case of pSeries. So, create a more generic, architecture independent cpuidle_pm_idle function pointer in driver/cpuidle/cpuidle.c

[PATCH 1/4]: CPUIDLE/POWER: Enable cpuidle for pSeries.

2009-08-27 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-27 17:19:08]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86 and ARM. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch

[v3 PATCH 0/4]: CPUIDLE/POWER: Introducing cpuidle infrastructure to POWER

2009-08-27 Thread Arun R Bharadwaj
Hi, Changes from previous iteration: * Remove the EXPORT_SYMBOL(pm_idle) from arch/powerpc/platform/pseries/processor_idle.c and introduce a generic cpuidle_pm_idle in cpuidle.c which was earlier assuming pm_idle to be the default idle routine. (As suggested by P

Re: [v2 PATCH 2/2]: pseries: Implement Pseries Processor Idle idle module.

2009-08-26 Thread Arun R Bharadwaj
* Peter Zijlstra [2009-08-26 13:27:18]: > On Wed, 2009-08-26 at 16:40 +0530, Arun R Bharadwaj wrote: > > +void (*pm_idle)(void); > > +EXPORT_SYMBOL_GPL(pm_idle); > > Seriously.. this caused plenty problems over on x86 and you're doing the > exact same dumb thing? &

[v2 PATCH 2/2]: pseries: Implement Pseries Processor Idle idle module.

2009-08-26 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-26 16:37:21]: This patch creates arch/powerpc/platforms/pseries/processor_idle.c, which implements the cpuidle infrastructure for pseries. It implements a pseries_cpuidle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of entering

[v2 PATCH 1/2]: pseries: Enable cpuidle for pSeries.

2009-08-26 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-26 16:37:21]: This patch enables the cpuidle option in Kconfig for pSeries. Currently cpuidle infrastructure is enabled only for x86. This code is almost completely borrowed from x86 to enable cpuidle for pSeries. Signed-off-by: Arun R Bharadwaj --- arch/powerpc

[v2 PATCH 0/2]: cpuidle: Introducing cpuidle infrastructure to POWER

2009-08-26 Thread Arun R Bharadwaj
Hi, "Cpuidle" is a CPU Power Management infrastrusture which helps manage idle CPUs in a clean and efficient manner. The architecture can register its driver (in this case, pseries_idle driver) so that it subscribes for cpuidle feature. Cpuidle has a set of governors (ladder and menu), which wil

[PATCH 2/2]: pSeries: Implement Thermal & Power Management Devices(TPMD) idle module.

2009-08-19 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-19 18:27:16]: This patch creates the Thermal & Power Management Devices module, tpmd_idle which implements the cpuidle infrasture for pseries. It implements a tpmd_idle_loop() which would be the main idle loop called from cpu_idle(). It makes decision of ente

[PATCH 1/2]: pSeries: Enable cpuidle for pSeries.

2009-08-19 Thread Arun R Bharadwaj
* Arun R Bharadwaj [2009-08-19 18:27:16]: This patch enables the cpuidle option in Kconfig for pSeries. It also adds the routine cpu_idle_wait. Signed-off-by: Arun R Bharadwaj --- arch/powerpc/Kconfig | 18 ++ arch/powerpc/include/asm/system.h |2

[PATCH 0/2]: cpuidle: Introducing cpuidle infrastructure to powerpc.

2009-08-19 Thread Arun R Bharadwaj
Hi, RFC not for inclusion "Cpuidle" is a CPU Power Management infrastrusture which helps manage idle CPUs in a clean and efficient manner. The architecture can register its driver (in this case, tpmd_idle driver) so that it subscribes for cpuidle feature. Cpuidle has a set of governors