Re: [linux-pm] [PATCH 16/18] 2.6.40: x86 idle APM: remove deprecatedapm_cpu_idle()

From: Trinabh Gupta
Date: Sat Apr 02 2011 - 22:49:29 EST




On 04/03/2011 02:30 AM, Alan Cox wrote:
This patch series was posted in reply to a table of contents

https://lkml.org/lkml/2011/4/2/8

"By the end of this series, pm_idle is removed as a public
x86 idle-loop registration mechanism. A few other things are
cleaned up in the process."

Ok so lets rewind a bit - why do we want to remove pm_idle rather than
just fix up the way registration occurs. It's just a symbol, one trivial
interface that is exported and perhaps wants the export method tidying up.

Trinabh also replied to you, pointing one of the previous
LKML discussions about the mis-use of pm_idle.

And there are misuses of just about every kernel symbol - kmalloc for
example causes some people a lot of trouble !

There are other problems too. This design of pm_idle has been copied
by numerous other architectures. arm/blackfin/cris/ia64/m32r/m68knomm
/microblaze/mn10300/sh/sparc all have pm_idle. This will keep spreading
in future I guess.


We'll create a new APM cpuidle driver in Linux (Trinabh prototyped one),
and at the same time, schedule it for removal in a year. Personally,
I think it is make-work, and in real-life it is more likely to do
more harm than removing apm_idle, but I don't want to stand in the
way of process.

So you could just leave it alone - that's less work, less disruption and
doesn't do any harm at all.

As I read this the plan at the moment otherwise is

- churn up all the code
- remove PM idle hook
- rewrite the APM code
- replace the APM code

whereas you could just leave the symbol exported or even just a hook to
make people to do it right using:

int register_pm_idle(function);

A patch was posted to do exactly this; see
https://lkml.org/lkml/2010/10/19/449 . The problem is that it
results in two places of registration: cpuidle subsystem and
this. It was pointed that 99.99% of people run cpuidle and
we should directly call cpuidle and use its registration mechanism
rather than duplicate code.

Thanks,
-Trinabh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/