Re: [PATCH v2] xprtrdma: Move long delayed work on system_dfl_long_wq

From: Chuck Lever

Date: Thu May 07 2026 - 12:15:37 EST



On Thu, May 7, 2026, at 3:01 PM, Marco Crivellari wrote:
> Currently the code enqueue work items using {queue|mod}_delayed_work(),
> using system_long_wq. This workqueue should be used when long works are
> expected and it is a per-cpu workqueue.
>
> The function(s) end up calling __queue_delayed_work(), which set a global
> timer that could fire anywhere, enqueuing the work where the timer fired.
>
> Unbound works could benefit from scheduler task placement, to optimize
> performance and power consumption. Long work shouldn't stick to a single
> CPU.
>
> Recently, a new unbound workqueue specific for long running work has
> been added:
>
>     c116737e972e ("workqueue: Add system_dfl_long_wq for long unbound works")
>
> Since the workqueue work doesn't rely on per-cpu variables, there is no
> obvious reason that justify the use of a per-cpu workqueue. So change
> system_long_wq with system_dfl_long_wq so that the work may benefit from
> scheduler task placement.
>
> Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
> ---
> Changes in v2:
> - Commit log improvements
>
> - Rebase on v7.1-rc2
>
> Link to v1:
> https://lore.kernel.org/all/20260430085412.96961-1-marco.crivellari@xxxxxxxx/

Reviewed-by: Chuck Lever <chuck.lever@xxxxxxxxxx>


--
Chuck Lever