Linux NFS development
 help / color / mirror / Atom feed
* [PATCH v3 0/5] Send RPC-on-TCP with one sock_sendmsg() call
@ 2023-07-19 18:30 Chuck Lever
  2023-07-19 18:31 ` [PATCH v3 1/5] SUNRPC: Convert svc_tcp_sendmsg to use bio_vecs directly Chuck Lever
                   ` (5 more replies)
  0 siblings, 6 replies; 14+ messages in thread
From: Chuck Lever @ 2023-07-19 18:30 UTC (permalink / raw)
  To: linux-nfs, netdev; +Cc: Chuck Lever, David Howells, dhowells

After some discussion with David Howells at LSF/MM 2023, we arrived
at a plan to use a single sock_sendmsg() call for transmitting an
RPC message on socket-based transports. This is an initial part of
the transition to support handling folios with file content, but it
has scalability benefits as well.

Initial performance benchmark results show 5-10% throughput gains
with a fast link layer and a tmpfs export. I've added some other
ideas to this series for further discussion -- these have also shown
performance benefits in my testing.


Changes since v2:
* Keep rq_bvec instead of switching to a per-transport bio_vec array
* Remove the cork/uncork logic in svc_tcp_sendto
* Attempt to mitigate wake-up storms when receiving large RPC messages

Changes since RFC:
* Moved xdr_buf-to-bio_vec array helper to generic XDR code
* Added bio_vec array bounds-checking
* Re-ordered patches

---

Chuck Lever (5):
      SUNRPC: Convert svc_tcp_sendmsg to use bio_vecs directly
      SUNRPC: Send RPC message on TCP with a single sock_sendmsg() call
      SUNRPC: Convert svc_udp_sendto() to use the per-socket bio_vec array
      SUNRPC: Revert e0a912e8ddba
      SUNRPC: Reduce thread wake-up rate when receiving large RPC messages


 include/linux/sunrpc/svcsock.h |   4 +-
 include/linux/sunrpc/xdr.h     |   2 +
 net/sunrpc/svcsock.c           | 127 +++++++++++++++------------------
 net/sunrpc/xdr.c               |  50 +++++++++++++
 4 files changed, 112 insertions(+), 71 deletions(-)

--
Chuck Lever


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2023-07-26 13:11 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-19 18:30 [PATCH v3 0/5] Send RPC-on-TCP with one sock_sendmsg() call Chuck Lever
2023-07-19 18:31 ` [PATCH v3 1/5] SUNRPC: Convert svc_tcp_sendmsg to use bio_vecs directly Chuck Lever
2023-07-26 12:13   ` David Howells
2023-07-19 18:31 ` [PATCH v3 2/5] SUNRPC: Send RPC message on TCP with a single sock_sendmsg() call Chuck Lever
2023-07-24  9:58   ` David Howells
2023-07-24 13:27     ` Chuck Lever
2023-07-26 12:13   ` David Howells
2023-07-19 18:31 ` [PATCH v3 3/5] SUNRPC: Convert svc_udp_sendto() to use the per-socket bio_vec array Chuck Lever
2023-07-26 12:15   ` David Howells
2023-07-26 13:11     ` Chuck Lever
2023-07-19 18:31 ` [PATCH v3 4/5] SUNRPC: Revert e0a912e8ddba Chuck Lever
2023-07-26 12:14   ` David Howells
2023-07-19 18:31 ` [PATCH v3 5/5] SUNRPC: Reduce thread wake-up rate when receiving large RPC messages Chuck Lever
2023-07-26 12:13 ` [PATCH v3 0/5] Send RPC-on-TCP with one sock_sendmsg() call David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox