Subject: [PATCH net-next v5 0/2] net/rds: RDS-TCP bug fix collection, subset 1: Work queue scalability

From: Allison Henderson <[email-masked]>
Date: Fri, 9 Jan 2026 15:48:41 -0700

From: Allison Henderson <[email-masked]>

Hi all,

This is subset 1 of the RDS-TCP bug fix collection series I posted last
Oct.  The greater series aims to correct multiple rds-tcp bugs that
can cause dropped or out of sequence messages.  The set was starting to
get a bit large, so I've broken it down into smaller sets to make
reviews more manageable.

In this subset, we focus on work queue scalability.  Messages queues
are refactored to operate in parallel across multiple connections,
which improves response times and avoids timeouts.

The entire set can be viewed in the rfc here:
https://lore.kernel.org/netdev/[email-masked]/

Questions, comments, flames appreciated!
Thanks!
Allison

Change Log:
rfc->v1
 - Fixed lkp warnings and white space cleanup
 - Split out the workqueue changes as a subset

v2
 [PATCH 1/2] net/rds: Add per cp work queue
   - Checkpatch nits
 [PATCH 2/2] net/rds: Give each connection its own workqueue
   - Checkpatch nits
   - Updated commit message with workqueue overhead accounting

v3
 [PATCH 2/2] net/rds: Give each connection path its own workqueue
   - Updated commit message with worst case connection path accounting
   - Use rds_wq as a fall back if queue alloc fails
   - Checkpatch nits 

v4
  [PATCH 2/2] net/rds: Give each connection path its own workqueue
   - Fixed memleak warning in __rds_conn_create error path

v5
  Fixed AI complaints

  [PATCH 1/2] net/rds: Add per cp work queue
  - updated rds_wq in rds_cong_queue_updates and
    rds_ib_send_cqe_handler

  [PATCH 2/2] net/rds: Give each connection path its own workqueue
  - free paths on race detection error and move freeing of conn->c_path
    outside of spinlocks
 
Allison Henderson (2):
  net/rds: Add per cp work queue
  net/rds: Give each connection path its own workqueue

 net/rds/cong.c       |  2 +-
 net/rds/connection.c | 28 +++++++++++++++++++++++-----
 net/rds/ib_recv.c    |  2 +-
 net/rds/ib_send.c    |  4 ++--
 net/rds/rds.h        |  1 +
 net/rds/send.c       |  9 +++++----
 net/rds/tcp_recv.c   |  2 +-
 net/rds/tcp_send.c   |  2 +-
 net/rds/threads.c    | 16 ++++++++--------
 9 files changed, 43 insertions(+), 23 deletions(-)

-- 
2.43.0