Re: 2.6.29-rc1 does not boot

Ingo Molnar
2009-01-14T11:30:32Z

* Rusty Russell <rusty@rustcorp.com.au> wrote:

> On Monday 12 January 2009 21:56:08 Ingo Molnar wrote:
> > work_on_cpu() needs to be reworked to be more generally usable.
>
> Yes, but how? If we don't take the hotplug lock, we are relying on the
> callers to "prove" the cpu can't go away. But we've already shown that
> we can't find this by inspection :(

it appears the problem wasnt even the hotplug lock, but the fact that
work_on_cpu() uses the generic schedule_work() method, which goes into a
queue with all other keventsd worklets.

and keventd is used by other aspects of cpufreq as well -> creating
workqueue-driven lock inversion scenarios - see Dieter's lockdep dump
earlier in this thread. ( I'm amazed lockdep sees through that dependency
:-)

Ingo