[rds-devel] [net-next,v4,1/2] net/rds: Add per cp work queue
Allison Henderson
allison.henderson at oracle.com
Fri Jan 9 16:56:03 UTC 2026
On Thu, 2026-01-08 at 18:51 -0800, Jakub Kicinski wrote:
> This is an automated AI-generated review of your patch.
>
> For local reproduction steps see https://urldefense.com/v3/__https://netdev-ai.bots.linux.dev/ai-local.html__;!!ACWV5N9M2RV99hQ!Jb4IwiQLlwSJFlqvRCi7Y54pEISEQKXyPiBtYXeM74mbOhBIwKUuPgo6RDWff-8JqJFtVL9t7X_PJiy6vw$
>
>
Hi Jakub,
Yes, I saw the AI response on patchwork yesterday and am working on an update already. Thanks for the reproducer link,
I'll see if I can work out any more AI gripes.
Thank you!
Allison
> ---
> commit 0d0b74852d11c82ac7d91c72b33c5dccb75934c5
> Author: Allison Henderson <allison.henderson at oracle.com>
>
> net/rds: Add per cp work queue
>
> This patch adds cp_wq to struct rds_conn_path and substitutes rds_wq with
> cp->cp_wq throughout the RDS codebase to enable per-connection workqueue
> management.
>
> > diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c
> > index 4190b90ff3b1..e35bbb6ffb68 100644
> > --- a/net/rds/ib_send.c
> > +++ b/net/rds/ib_send.c
> > @@ -419,7 +419,7 @@ void rds_ib_send_add_credits(struct rds_connection *conn, unsigned int credits)
> >
> > atomic_add(IB_SET_SEND_CREDITS(credits), &ic->i_credits);
> > if (test_and_clear_bit(RDS_LL_SEND_FULL, &conn->c_flags))
> > - queue_delayed_work(rds_wq, &conn->c_send_w, 0);
> > + queue_delayed_work(conn->c_path->cp_wq, &conn->c_send_w, 0);
> >
> > WARN_ON(IB_GET_SEND_CREDITS(credits) >= 16384);
>
> This substitution in rds_ib_send_add_credits() looks correct, but was the
> similar call site in rds_ib_send_cqe_handler() in the same file
> intentionally left unchanged? That function still uses:
>
> queue_delayed_work(rds_wq, &conn->c_send_w, 0);
>
> Both functions have access to conn->c_path->cp_wq, so the inconsistency
> seems unintentional. If some call sites should remain on the global rds_wq
> while others use the per-connection workqueue, it would help to understand
> the reasoning.
>
> Similarly, rds_cong_queue_updates() in net/rds/cong.c still uses:
>
> queue_delayed_work(rds_wq, &cp->cp_send_w, 0);
>
> even though it already has cp available. Should this also be updated to
> use cp->cp_wq for consistency with the other substitutions?
More information about the rds-devel
mailing list