Messages in this thread | | | Date | Wed, 19 Jul 2017 11:25:57 -0400 | From | Tejun Heo <> | Subject | Re: [PATCH wq/for-4.13-fixes] workqueue: restore WQ_UNBOUND/max_active==1 to be ordered |
| |
On Tue, Jul 18, 2017 at 06:41:52PM -0400, Tejun Heo wrote: > The combination of WQ_UNBOUND and max_active == 1 used to imply > ordered execution. After NUMA affinity 4c16bd327c74 ("workqueue: > implement NUMA affinity for unbound workqueues"), this is no longer > true due to per-node worker pools. > > While the right way to create an ordered workqueue is > alloc_ordered_workqueue(), the documentation has been misleading for a > long time and people do use WQ_UNBOUND and max_active == 1 for ordered > workqueues which can lead to subtle bugs which are very difficult to > trigger. > > It's unlikely that we'd see noticeable performance impact by enforcing > ordering on WQ_UNBOUND / max_active == 1 workqueues. Let's > automatically set __WQ_ORDERED for those workqueues. > > Signed-off-by: Tejun Heo <tj@kernel.org> > Reported-by: Christoph Hellwig <hch@infradead.org> > Reported-by: Alexei Potashnik <alexei@purestorage.com> > Fixes: 4c16bd327c74 ("workqueue: implement NUMA affinity for unbound workqueues") > Cc: stable@vger.kernel.org # v3.10+
Applied to wq/for-4.13-fixes.
Thanks.
-- tejun
| |