public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Warn people about flush_scheduled_work()
@ 2009-12-14 21:33 Alan Stern
  2009-12-14 21:42 ` Oliver Neukum
  2009-12-14 22:38 ` Tejun Heo
  0 siblings, 2 replies; 11+ messages in thread
From: Alan Stern @ 2009-12-14 21:33 UTC (permalink / raw)
  To: Tejun Heo; +Cc: Kernel development list

Tejun:

You've spent some time working on the workqueue implementation, right?  
I'd like to add comments or kerneldoc warning people about how 
dangerous it can be to use flush_scheduled_work() and related 
functions.  Something like this:

	Think twice before calling this function!  It's very easy
	to get into trouble if you don't take great care.  Either
	of the following situations will lead to deadlock:

		Your code is running in the context of a scheduled
		work routine.

		Your code or its caller holds a lock needed by
		one of the work items currently on the workqueue.

	Since you generally don't know who your caller is, what locks
	it holds, or what locks are needed by the items on the 
	workqueue, avoiding these situations is quite difficult.

	Consider using cancel_work_sync() or cancel_delayed_work_sync()
	instead.  In most situations they will accomplish what you 
	need.

Does this sound like a good idea?  Certainly flush_scheduled_work()  
is used in places where it shouldn't be.

If comments like this are added, where do you think would be a good 
place to put them?

Alan Stern


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2010-02-12  8:40 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-14 21:33 Warn people about flush_scheduled_work() Alan Stern
2009-12-14 21:42 ` Oliver Neukum
2009-12-14 22:02   ` Alan Stern
2009-12-14 22:12     ` Oliver Neukum
2009-12-14 23:04       ` Alan Stern
2009-12-14 22:38 ` Tejun Heo
2009-12-14 23:14   ` Alan Stern
2009-12-14 23:25     ` Tejun Heo
2009-12-16 15:52   ` [PATCH] Warn " Alan Stern
2009-12-21  8:26     ` Tejun Heo
2010-02-12  8:47       ` Tejun Heo

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox