Thread (16 messages) 16 messages, 5 authors, 2013-08-19

Re: [PATCH V2 4/6] cpuidle/pseries: Move the pseries_idle backend driver to sysdev.

From: Preeti U Murthy <hidden>
Date: 2013-08-01 04:59:25
Also in: linux-pm, lkml

Hi Dongsheng,

On 07/31/2013 11:16 AM, Wang Dongsheng-B40534 wrote:
Hi Preeti,
quoted
-----Original Message-----
From: Preeti U Murthy [mailto:preeti@linux.vnet.ibm.com]
Sent: Wednesday, July 31, 2013 12:00 PM
To: Wang Dongsheng-B40534
Cc: Deepthi Dharwar; benh@kernel.crashing.org; daniel.lezcano@linaro.org;
linux-kernel@vger.kernel.org; michael@ellerman.id.au;
srivatsa.bhat@linux.vnet.ibm.com; svaidy@linux.vnet.ibm.com; linuxppc-
dev@lists.ozlabs.org; rjw@sisk.pl; linux-pm@vger.kernel.org
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:
quoted
quoted
-----Original Message-----
From: Deepthi Dharwar [mailto:deepthi@linux.vnet.ibm.com]
Sent: Wednesday, July 31, 2013 10:59 AM
To: benh@kernel.crashing.org; daniel.lezcano@linaro.org; linux-
kernel@vger.kernel.org; michael@ellerman.id.au;
srivatsa.bhat@linux.vnet.ibm.com; preeti@linux.vnet.ibm.com;
svaidy@linux.vnet.ibm.com; linuxppc-dev@lists.ozlabs.org
Cc: rjw@sisk.pl; Wang Dongsheng-B40534; linux-pm@vger.kernel.org
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.

As Daniel pointed out, with a call to cpuidle_register(), we can get the
cpuidle_driver and cpuidle_device registered through the generic cpuidle
framework. Hence we can get rid of the powerpc_idle_devices_init() routine.

We can have the hotplug notifier in the generic cpuidle framework as
well. The rest of the patchset however should be arch specific IMO.

Regards
Preeti U Murthy
-dongsheng

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help