Messages in this thread | | | Date | Wed, 28 Feb 2007 08:37:26 +0530 | From | Srivatsa Vaddagiri <> | Subject | Re: Problem with freezable workqueues |
| |
On Wed, Feb 28, 2007 at 12:57:35AM +0100, Rafael J. Wysocki wrote: > > How about other kthread_stop()s ? For example, kernel/softirq.c:cpu_callback() ? > > They all are PF_NOFREEZE, I suppose. If we make all workqueues nonfreezable > (as they were before), the problem won't appear.
We can just thaw the worker thread selectively before kthread_stopping them. This will let us freeze all worker threads (which we want to for hotplug anyway).
> > I think we need a general "cpu_down() after freeze" implementation, this is what > > Gautham and Srivatsa are working on, right? > > Yes, certainly.
Hmm ..good point. So can we assume that disable/enable_nonboot_cpus() are called with processes frozen already?
Gautham, you need to take this into account in your patchset!
> > I'm afraid this is racy. We can't touch *cwq, it may be freed. Suppose > > that another thread does destroy_workqueue(), and we thaw that thread > > before cwq->thread. > > Okay, in that case I'd suggest removing create_freezeable_workqueue() and > make all workqueues nonfreezable once again for 2.6.21 (as far as I know, only > the two XFS workqueues are affected).
See above suggestion of thawing worker thread before kthread_stopping it.
-- Regards, vatsa - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |