RE: [PATCH V2 4/6] cpuidle/pseries: Move the pseries_idle backenddriver to sysdev.
From: Wang Dongsheng-B40534
Date: Wed Jul 31 2013 - 01:46:24 EST
> -----Original Message-----
> From: Preeti U Murthy [mailto:preeti@xxxxxxxxxxxxxxxxxx]
> Sent: Wednesday, July 31, 2013 12:00 PM
> To: Wang Dongsheng-B40534
> Cc: Deepthi Dharwar; benh@xxxxxxxxxxxxxxxxxxx; daniel.lezcano@xxxxxxxxxx;
> linux-kernel@xxxxxxxxxxxxxxx; michael@xxxxxxxxxxxxxx;
> srivatsa.bhat@xxxxxxxxxxxxxxxxxx; svaidy@xxxxxxxxxxxxxxxxxx; linuxppc-
> dev@xxxxxxxxxxxxxxxx; rjw@xxxxxxx; linux-pm@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH V2 4/6] cpuidle/pseries: Move the pseries_idle
> backend driver to sysdev.
> Hi Dongsheng,
> On 07/31/2013 08:52 AM, Wang Dongsheng-B40534 wrote:
> >> -----Original Message-----
> >> From: Deepthi Dharwar [mailto:deepthi@xxxxxxxxxxxxxxxxxx]
> >> Sent: Wednesday, July 31, 2013 10:59 AM
> >> To: benh@xxxxxxxxxxxxxxxxxxx; daniel.lezcano@xxxxxxxxxx; linux-
> >> kernel@xxxxxxxxxxxxxxx; michael@xxxxxxxxxxxxxx;
> >> srivatsa.bhat@xxxxxxxxxxxxxxxxxx; preeti@xxxxxxxxxxxxxxxxxx;
> >> svaidy@xxxxxxxxxxxxxxxxxx; linuxppc-dev@xxxxxxxxxxxxxxxx
> >> Cc: rjw@xxxxxxx; Wang Dongsheng-B40534; linux-pm@xxxxxxxxxxxxxxx
> >> Subject: [PATCH V2 4/6] cpuidle/pseries: Move the pseries_idle
> >> backend driver to sysdev.
> >> Move pseries_idle backend driver code to arch/powerpc/sysdev so that
> >> the code can be used for a common driver for powernv and pseries.
> >> This removes a lot of code duplicacy.
> > Why not drivers/cpuidle/?
> > I think it should be move to drivers/cpuidle.
> Please take a look at what the cpuidle under drivers has to provide.
> cpuidle has two parts to it. The front end and the back end. The front
> end constitutes the cpuidle governors, registering of arch specific
> cpuidle drivers, disabling and enabling of cpuidle feature. It is this
> front end code which is present under drivers/cpuidle.
> The arch specific cpuidle drivers which decide what needs to be done to
> enter a specific idle state chosen by the cpuidle governor is what
> constitutes the back end of cpuidle. This will not be in drivers/cpuidle
> but in an arch/ specific code.
> The cpuidle under drivers/cpuidle drives the idle power management, but
> the low level handling of the entry into idle states should be taken care
> of by the architecture.
> Your recent patch :
> cpuidle: add freescale e500 family porcessors idle support IMO should
> hook onto the backend cpuidle driver that this patchset provides.
Sorry, I don't think so, cpuidle framework has been already very common.
Here we just need to do state definition and handling. I wonder whether
we need this layer.
If your handle is platform dependent, it should be in arch/platform.
If it is only for some platforms and the operation of these platforms can be
multiplexed, Why cannot as a driver to put into driver/cpuidle?
If it a general driver, I think we can put some common operating to driver/cpuidle
and make the platform specific code to arch/powerpc/platform.
This patch include front end and back end, not just back end.
This patch include too many state of different platforms and handle function. This state
and handle that should belong to itself platforms. Not a general way. If Deepthi will do
a general powerpc cpuidle, I think, it's cannot just using the macro to distinguish
platform. the front end code maybe move to driver/cpuidle(drvier register) should be better,
make the Low Power State and what should be handle to arch/powerpc/platform/**, because different
platforms have different state of low power consumption, and the processing method.
The front end can provide some general methods to register into general powerpc cpuidle driver.