netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Allison Henderson <achender@kernel.org>
To: netdev@vger.kernel.org
Subject: [RFC 00/15] net/rds: RDS-TCP bug fix collection
Date: Wed, 22 Oct 2025 12:17:00 -0700	[thread overview]
Message-ID: <20251022191715.157755-1-achender@kernel.org> (raw)

From: Allison Henderson <allison.henderson@oracle.com>

Hi all,

This set is a collection of  bug-fixes we've been working on for RDS.

This series was last seen in April, but further testing turned up
additional bugs that we thought best to address as part of the same
effort. So the series has grown a bit, and I’ve restarted versioning
since the set sent last spring. Many of the April patches are retained
here though.

To refresh: under stress testing, RDS has shown dropped or
out-of-sequence message issues. These patches address those problems,
together with a bit of work queue refactoring.

Since the April posting, patches 2, 3, 6 and 10–16 are new. To ease
reviewing, I was thinking we could split the set into smaller logical
subsets.  Maybe something like this:

Workqueue scalability (subset 1)
net/rds: Add per cp work queue
net/rds: Give each connection its own workqueue

Bug fixes (subset 2)
net/rds: Change return code from rds_send_xmit() when lock is taken
net/rds: No shortcut out of RDS_CONN_ERROR
net/rds: rds_tcp_accept_one ought to not discard messages

Protocol/extension fixes (subset 3)
net/rds: new extension header: rdma bytes
net/rds: Encode cp_index in TCP source port
net/rds: rds_tcp_conn_path_shutdown must not discard messages
net/rds: Kick-start TCP receiver after accept
net/rds: Clear reconnect pending bit
net/rds: Use the first lane until RDS_EXTHDR_NPATHS arrives
net/rds: Trigger rds_send_hs_ping() more than once

Send path and fan-out fixes (subset 4)
net/rds: Delegate fan-out to a background worker
net/rds: Use proper peer port number even when not connected
net/rds: rds_sendmsg should not discard payload_len

If this breakdown seems useful, we can start with just the first set
and I'll keep with a branch with the full set available for those who
want to look ahead.  Otherwise I’ll keep the full set together.  Let me
know what would be most helpful.

Questions, comments, flames appreciated!
Thanks,
Allison


Allison Henderson (2):
  net/rds: Add per cp work queue
  net/rds: rds_sendmsg should not discard payload_len

Gerd Rausch (8):
  net/rds: No shortcut out of RDS_CONN_ERROR
  net/rds: rds_tcp_accept_one ought to not discard messages
  net/rds: Encode cp_index in TCP source port
  net/rds: rds_tcp_conn_path_shutdown must not discard messages
  net/rds: Kick-start TCP receiver after accept
  net/rds: Use the first lane until RDS_EXTHDR_NPATHS arrives
  net/rds: Trigger rds_send_ping() more than once
  net/rds: Delegate fan-out to a background worker

Greg Jumper (1):
  net/rds: Use proper peer port number even when not connected

Håkon Bugge (3):
  net/rds: Give each connection its own workqueue
  net/rds: Change return code from rds_send_xmit() when lock is taken
  net/rds: Clear reconnect pending bit

Shamir Rabinovitch (1):
  net/rds: new extension header: rdma bytes

 net/rds/connection.c  |  25 ++++-
 net/rds/ib.c          |   5 +
 net/rds/ib_recv.c     |   2 +-
 net/rds/ib_send.c     |  21 +++-
 net/rds/message.c     |  66 +++++++++---
 net/rds/rds.h         |  97 +++++++++++------
 net/rds/recv.c        |  39 ++++++-
 net/rds/send.c        | 136 +++++++++++++++---------
 net/rds/stats.c       |   1 +
 net/rds/tcp.c         |  31 +++---
 net/rds/tcp.h         |  34 ++++--
 net/rds/tcp_connect.c |  70 +++++++++++-
 net/rds/tcp_listen.c  | 240 +++++++++++++++++++++++++++++++++++-------
 net/rds/tcp_recv.c    |   6 +-
 net/rds/tcp_send.c    |   4 +-
 net/rds/threads.c     |  17 +--
 16 files changed, 618 insertions(+), 176 deletions(-)

-- 
2.43.0


             reply	other threads:[~2025-10-22 19:17 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-22 19:17 Allison Henderson [this message]
2025-10-22 19:17 ` [RFC 01/15] net/rds: Add per cp work queue Allison Henderson
2025-10-22 19:17 ` [RFC 02/15] net/rds: Give each connection its own workqueue Allison Henderson
2025-10-22 19:17 ` [RFC 03/15] net/rds: Change return code from rds_send_xmit() when lock is taken Allison Henderson
2025-10-22 19:17 ` [RFC 04/15] net/rds: No shortcut out of RDS_CONN_ERROR Allison Henderson
2025-10-22 19:17 ` [RFC 05/15] net/rds: rds_tcp_accept_one ought to not discard messages Allison Henderson
2025-10-22 19:17 ` [RFC 06/15] net/rds: new extension header: rdma bytes Allison Henderson
2025-10-22 19:17 ` [RFC 07/15] net/rds: Encode cp_index in TCP source port Allison Henderson
2025-10-22 19:17 ` [RFC 08/15] net/rds: rds_tcp_conn_path_shutdown must not discard messages Allison Henderson
2025-10-22 19:17 ` [RFC 09/15] net/rds: Kick-start TCP receiver after accept Allison Henderson
2025-10-22 19:17 ` [RFC 10/15] net/rds: Clear reconnect pending bit Allison Henderson
2025-10-22 19:17 ` [RFC 11/15] net/rds: Use the first lane until RDS_EXTHDR_NPATHS arrives Allison Henderson
2025-10-22 19:17 ` [RFC 12/15] net/rds: Trigger rds_send_ping() more than once Allison Henderson
2025-10-22 19:17 ` [RFC 13/15] net/rds: Delegate fan-out to a background worker Allison Henderson
2025-10-22 19:17 ` [RFC 14/15] net/rds: Use proper peer port number even when not connected Allison Henderson
2025-10-22 19:17 ` [RFC 15/15] net/rds: rds_sendmsg should not discard payload_len Allison Henderson
2025-10-22 22:04 ` [RFC 00/15] net/rds: RDS-TCP bug fix collection Allison Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20251022191715.157755-1-achender@kernel.org \
    --to=achender@kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).