On Mon, Apr 22, 2024 at 02:43:48PM -1000, Tejun Heo wrote:
> workqueue: The default node_nr_active should have its max set to max_active
> 
> The default nna (node_nr_active) is used when the pool isn't tied to a
> specific NUMA node. This can happen in the following cases:
> 
>  1. On NUMA, if per-node pwq init failure and the fallback pwq is used.
>  2. On NUMA, if a pool is configured to span multiple nodes.
>  3. On single node setups.
> 
> 5797b1c18919 ("workqueue: Implement system-wide nr_active enforcement for
> unbound workqueues") set the default nna->max to min_active because only #1
> was being considered. For #2 and #3, using min_active means that the max
> concurrency in normal operation is pushed down to min_active which is
> currently 8, which can obviously lead to performance issues.
> 
> #1 is very unlikely to happen to begin with and even when it does which
> exact value nna->max is set to doesn't really matter. #2 can only happen if
> the workqueue is intentionally configured to ignore NUMA boundaries and
> there's no good way to distribute max_active in this case. #3 is the default
> behavior on single node machines.
> 
> Let's set it the default nna->max to max_active. This fixes the artificially
> lowered concurrency problem on single node machines and shouldn't hurt
> anything for other cases.
> 
> Signed-off-by: Tejun Heo <t...@kernel.org>
> Reported-by: Shinichiro Kawasaki <shinichiro.kawas...@wdc.com>
> Fixes: 5797b1c18919 ("workqueue: Implement system-wide nr_active enforcement 
> for unbound workqueues")
> Link: 
> http://lkml.kernel.org/r/20240410082822.2131994-1-shinichiro.kawas...@wdc.com

Apply to wq/for-6.9-fixes.

Thanks.

-- 
tejun

Reply via email to