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 <t...@kernel.org> > Reported-by: Christoph Hellwig <h...@infradead.org> > Reported-by: Alexei Potashnik <ale...@purestorage.com> > Fixes: 4c16bd327c74 ("workqueue: implement NUMA affinity for unbound > workqueues") > Cc: sta...@vger.kernel.org # v3.10+
Applied to wq/for-4.13-fixes. Thanks. -- tejun