Re: [PATCH] RDMA/rxe: Replace use of system_unbound_wq with system_dfl_wq

From: Leon Romanovsky

Date: Mon Mar 16 2026 - 16:13:35 EST


On Fri, Mar 13, 2026 at 04:40:23PM +0100, Marco Crivellari wrote:
> This patch continues the effort to refactor workqueue APIs, which has begun
> with the changes introducing new workqueues and a new alloc_workqueue flag:
>
> commit 128ea9f6ccfb ("workqueue: Add system_percpu_wq and system_dfl_wq")
> commit 930c2ea566af ("workqueue: Add new WQ_PERCPU flag")
>
> The point of the refactoring is to eventually alter the default behavior of
> workqueues to become unbound by default so that their workload placement is
> optimized by the scheduler.
>
> Before that to happen, workqueue users must be converted to the better named
> new workqueues with no intended behaviour changes:
>
> system_wq -> system_percpu_wq
> system_unbound_wq -> system_dfl_wq
>
> This way the old obsolete workqueues (system_wq, system_unbound_wq) can be
> removed in the future.

I recall earlier efforts to replace system workqueues with per‑driver queues,
because unloading a driver forces a flush of the entire system workqueue,
which is undesirable for overall system behavior.

Wouldn't it be better to introduce a local workqueue here and use that instead?

Thanks

>
> Link: https://lore.kernel.org/all/20250221112003.1dSuoGyc@xxxxxxxxxxxxx/
> Suggested-by: Tejun Heo <tj@xxxxxxxxxx>
> Signed-off-by: Marco Crivellari <marco.crivellari@xxxxxxxx>
> ---
> drivers/infiniband/sw/rxe/rxe_odp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/infiniband/sw/rxe/rxe_odp.c b/drivers/infiniband/sw/rxe/rxe_odp.c
> index bc11b1ec59ac..d440c8cbaea5 100644
> --- a/drivers/infiniband/sw/rxe/rxe_odp.c
> +++ b/drivers/infiniband/sw/rxe/rxe_odp.c
> @@ -545,7 +545,7 @@ static int rxe_ib_advise_mr_prefetch(struct ib_pd *ibpd,
> work->frags[i].mr = mr;
> }
>
> - queue_work(system_unbound_wq, &work->work);
> + queue_work(system_dfl_wq, &work->work);
>
> return 0;
>
> --
> 2.53.0
>