Re: remove cpu hotplug bustification in cpufreq.

From: Russell King
Date: Wed Jul 26 2006 - 13:11:07 EST

On Tue, Jul 25, 2006 at 04:46:24PM -0400, Dave Jones wrote:
> On Tue, Jul 25, 2006 at 08:54:49PM +0200, Ingo Molnar wrote:
> >
> > * Linus Torvalds <torvalds@xxxxxxxx> wrote:
> >
> > > The current -git tree will complain about some of the more obvious
> > > problems. If you see a "Lukewarm IQ" message, it's a sign of somebody
> > > re-taking a cpu lock that is already held.
> > testing on my latest-rawhide laptop (kernel-2.6.17-1.2445.fc6 and later
> > rpms have this change) seems to have pushed the problem over to another
> > lock:
> >
> > S06cpuspeed/1580 is trying to acquire lock:
> > (&policy->lock){--..}, at: [<c06075f9>] mutex_lock+0x21/0x24
> >
> > but task is already holding lock:
> > (cpu_bitmask_lock){--..}, at: [<c06075f9>] mutex_lock+0x21/0x24
> >
> > which lock already depends on the new lock.
> >
> > and we also get the:
> >
> > Lukewarm IQ detected in hotplug locking
> >
> > message :-| Find the full bootlog below. And i dont understand the
> > cpufreq code well enough to fix this. In fact, does anyone understand
> > it? :-/
> Things used to be fairly simple until hotplug cpu came along :-/
> Each day, I'm getting more of the opinion that my patch just ripping
> out this garbage is the right solution.

Not sure if I'm reading your sentiment correctly, but...

It came from the ARM tree, where it had one specific problem to solve -
how to change the CPU core frequency in a safe way.

"Safe way" means informing drivers that they need to quiesce their DMA,
_carefully_ reprogramming the SDRAM timings so we don't lose system
memory, etc. Locking was (iirc) semaphore based because we used notifier
lists and the like which could sleep (and drivers did and continue to
sleep in the callbacks).

It then got battered into working for x86, which brought a new realm of
locking issues.

Maybe the right answer back in years gone by was to be hard-nosed about
it and said "hands off, this is ARM only, invent your own".

Therefore, if you are intending throwing out cpufreq, I'd like to replace
it with the ARM-only version instead - we _require_ this infrastructure
for the correct operation of some ARM platforms.

Russell King
Linux kernel 2.6 ARM Linux -
maintainer of: 2.6 Serial core
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at