[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