Re: [RFC PATCH(Experimental) 2/4] Revert changes to workqueue.c

From: Oleg Nesterov
Date: Wed Feb 14 2007 - 15:24:01 EST


On 02/14, Srivatsa Vaddagiri wrote:
>
> On Wed, Feb 14, 2007 at 08:13:05PM +0530, Gautham R Shenoy wrote:
> > + switch (action) {
> > + case CPU_UP_PREPARE:
> > + /* Create a new workqueue thread for it. */
> > + list_for_each_entry(wq, &workqueues, list) {
>
> Its probably safe to take the workqueue (spin) lock here (and other
> notifiers as well), before traversing the list.

We can't fork() under spin lock.

>
> > + cwq = per_cpu_ptr(wq->cpu_wq, hotcpu);
> > + if (create_workqueue_thread(cwq, hotcpu)) {
> > + printk("workqueue for %i failed\n", hotcpu);
> > + return NOTIFY_BAD;
> > + }
> > + }
> > + break;

Oleg.

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