Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Oleg Nesterov
Date: Monday, January 8, 2007 - 8:56 am

On 01/08, Srivatsa Vaddagiri wrote:

Thank you for review!


Yes, this is the same (old) problem as we have/had with flush_workqueue().
We can convert flush_work() to use preempt_disable (this is not straightforward,
but easy), or forbid to call flush_work() from work.func().

This patch doesn't touch this problem.


Hmm... This should not be possible? cwq->thread != NULL on CPU_DEAD event.
Event IF it was NULL, we don't call kthread_stop() in that case.


Could you clarify? I believe cwq->thread == current test always works, we never
"substitute" cwq->thread.


I still don't think this is a good idea. We also need
	is_cpu_down_waits_for_lock_cpu_hotplug()

helper, otherwise we have a deadlock if work->func() sleeps and re-queues itself.


Yes, http://marc.theaimsgroup.com/?l=linux-kernel&m=116818097927685, I believe
we can do this later. This way workqueue will have almost zero interaction
with cpu-hotplug, and cpu UP/DOWN event won't be delayed by sleeping work.func().
take_over_work() can go away, this also allows us to simplify things.

Thanks!

Oleg.

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Thu Jan 4, 4:32 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Oleg Nesterov, (Thu Jan 4, 7:29 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Thu Jan 4, 8:56 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Oleg Nesterov, (Thu Jan 4, 9:31 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Thu Jan 4, 9:57 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Andrew Morton, (Thu Jan 4, 10:18 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Oleg Nesterov, (Thu Jan 4, 11:09 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Andrew Morton, (Thu Jan 4, 11:31 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Fri Jan 5, 1:56 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Fri Jan 5, 2:03 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Oleg Nesterov, (Fri Jan 5, 5:42 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Oleg Nesterov, (Fri Jan 5, 7:07 am)
[PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sat Jan 6, 8:10 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Sat Jan 6, 8:11 am)
Re: [PATCH, RFC] reimplement flush_workqueue(), Srivatsa Vaddagiri, (Sat Jan 6, 8:24 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sat Jan 6, 8:45 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sat Jan 6, 9:30 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sat Jan 6, 9:38 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sat Jan 6, 10:34 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Andrew Morton, (Sat Jan 6, 12:11 pm)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sun Jan 7, 3:43 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sun Jan 7, 4:00 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 5:56 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 7:22 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 7:42 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sun Jan 7, 9:21 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sun Jan 7, 9:43 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Sun Jan 7, 10:01 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 10:09 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 10:18 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 10:33 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Andrew Morton, (Sun Jan 7, 12:59 pm)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Sun Jan 7, 2:51 pm)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Mon Jan 8, 8:22 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Mon Jan 8, 8:37 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Mon Jan 8, 8:56 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Mon Jan 8, 9:31 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Mon Jan 8, 10:06 am)
RE: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Pallipadi, Venkatesh, (Mon Jan 8, 11:37 am)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Mon Jan 8, 6:11 pm)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Srivatsa Vaddagiri, (Mon Jan 8, 9:39 pm)
Re: [PATCH] fix-flush_workqueue-vs-cpu_dead-race-update, Oleg Nesterov, (Tue Jan 9, 7:38 am)