Re: [RFC PATCH 0/6] Convert all tasklets to workqueues

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Oleg Nesterov
Date: Friday, June 29, 2007 - 10:09 am

(the email address of Matthew Wilcox looks wrong, changed to matthew@wil.cx)

On 06/29, Oleg Nesterov wrote:

Ugh, tasklet_disable() should be changed as well.


Suppose we have the tasklets T1 and T2, both are scheduled on the
same CPU. T1 takes some spinlock LOCK.

Currently it is possible to do

	spin_lock(LOCK);
	disable_tasklet(T2);

With this patch, the above code hangs.


The most simple fix is to use wait_on_work(t->work) instead of
flush_workqueue(). Currently it is static, but we can export it.
This change will speedup tasklet_disable), btw.

A better fix imho is to use cancel_work_sync() again, but this
needs some complications to preserve TASKLET_STATE_PENDING.

This in turn means that cancel_work_sync() should return "int", but
not "void". This change makes sense regardless, I'll try to make a
patch on Sunday.

Oleg.

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

Messages in current thread:
[RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 21, 9:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 12:09 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 12:51 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 12:53 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 4:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 5:32 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 5:38 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 5:58 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 6:12 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Fri Jun 22, 6:13 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 6:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 6:35 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Fri Jun 22, 6:41 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 7:00 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Arjan van de Ven, (Fri Jun 22, 7:25 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 7:27 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 7:42 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Arjan van de Ven, (Fri Jun 22, 7:43 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Linus Torvalds, (Fri Jun 22, 10:16 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 10:31 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 11:32 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 1:40 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Christoph Hellwig, (Fri Jun 22, 2:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 2:10 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Thomas Gleixner, (Fri Jun 22, 2:13 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Linus Torvalds, (Fri Jun 22, 2:37 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 2:53 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 2:59 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:09 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 3:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Roland Dreier, (Fri Jun 22, 3:43 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 22, 3:44 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 22, 3:58 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Daniel Walker, (Fri Jun 22, 4:28 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stephen Hemminger, (Fri Jun 22, 10:14 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dave Airlie, (Fri Jun 22, 11:23 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Jonathan Corbet, (Sun Jun 24, 8:16 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Steven Rostedt, (Sun Jun 24, 8:52 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Tilman Schmidt, (Mon Jun 25, 9:50 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 10:06 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 12:11 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stephen Hemminger, (Mon Jun 25, 12:52 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 1:31 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Tilman Schmidt, (Mon Jun 25, 1:50 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 2:03 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Mon Jun 25, 2:15 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Stefan Richter, (Mon Jun 25, 4:36 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues , Jonathan Corbet, (Mon Jun 25, 5:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 5:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 5:52 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Mon Jun 25, 6:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Mon Jun 25, 7:01 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Mon Jun 25, 7:12 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Wed Jun 27, 10:48 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 2:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 5:37 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Thu Jun 28, 7:38 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 8:17 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 8:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 8:54 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 9:00 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Thu Jun 28, 9:37 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 10:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Thu Jun 28, 10:44 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 11:02 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Andrew Morton, (Thu Jun 28, 11:19 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Thu Jun 28, 1:07 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 1:46 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 2:23 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Dan Williams, (Thu Jun 28, 2:40 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 3:00 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Thu Jun 28, 3:01 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 4:34 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Duncan Sands, (Fri Jun 29, 4:48 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 29, 5:29 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 6:25 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 6:36 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Steven Rostedt, (Fri Jun 29, 6:41 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Ingo Molnar, (Fri Jun 29, 6:43 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Duncan Sands, (Fri Jun 29, 7:01 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Jeff Garzik, (Fri Jun 29, 7:24 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 7:26 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 7:27 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 8:23 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 8:51 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 9:21 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 9:34 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 9:52 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Fri Jun 29, 10:09 am)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Alexey Kuznetsov, (Fri Jun 29, 12:04 pm)
Re: [RFC PATCH 0/6] Convert all tasklets to workqueues, Oleg Nesterov, (Sat Jun 30, 4:25 am)