[lkml]   [2014]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH 9/9] workqueue: remove PREPARE_[DELAYED_]WORK()
On Thu, Feb 20, 2014 at 03:44:31PM -0500, Tejun Heo wrote:
> Peter Hurley noticed that since a2c1c57be8d9 ("workqueue: consider
> work function when searching for busy work items"), a work item which
> gets assigned a different work function would break out of the
> non-reentrancy guarantee as workqueue would consider it a different
> work item.
> This is fragile and extremely subtle. PREPARE_[DELAYED_]WORK() have
> never been used widely and its semantics has always been somewhat
> iffy. If the work item is known not to be on queue when
> PREPARE_WORK() is called, there's no difference from using
> INIT_WORK(). If the work item may be queued at the time of
> PREPARE_WORK(), we can't really tell whether the old or new function
> will be executed the next time.
> We really don't want this level of subtlety in workqueue interface for
> such marginal use cases. The previous patches converted all existing
> users away from PREPARE_[DELAYED_]WORK(). Let's remove them.
> Signed-off-by: Tejun Heo <>
> Cc: Peter Hurley <>
> Link:

Applied to wq/for-3.15.



 \ /
  Last update: 2014-03-08 01:21    [W:0.254 / U:1.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site