Re: [PATCH 9/9] workqueue: remove PREPARE_[DELAYED_]WORK()

From: Tejun Heo
Date: Fri Mar 07 2014 - 10:27:55 EST


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 <tj@xxxxxxxxxx>
> Cc: Peter Hurley <peter@xxxxxxxxxxxxxxxxxx>
> Link: http://lkml.kernel.org/g/1392493119-9277-1-git-send-email-peter@xxxxxxxxxxxxxxxxxx

Applied to wq/for-3.15.

Thanks.

--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/