Messages in this thread | | | Date | Wed, 14 Jan 2009 12:30:06 +0100 | From | Ingo Molnar <> | Subject | Re: 2.6.29-rc1 does not boot |
| |
* 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
| |