Re: workqueue deadlock

From: Ingo Molnar
Date: Sat Dec 09 2006 - 05:29:05 EST



* Andrew Morton <akpm@xxxxxxxx> wrote:

> > > + if (cpu != -1)
> > > + mutex_lock(&workqueue_mutex);
> >
> > events/4 thread itself wanting the same mutex above?
>
> Could do, not sure. I'm planning on converting all the locking around
> here to preempt_disable() though.

please at least use an owner-recursive per-CPU lock, not a naked
preempt_disable()! The concurrency rules for data structures changed via
preempt_disable() are quite hard to sort out after the fact.
(preempt_disable() is too opaque, it doesnt attach data structure to
critical section, like normal locks do.)

Ingo
-
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/