mbox series

[v2,0/5] svcrdma: Go back to releasing pages-under-I/O

Message ID 168657879115.5619.5573632864481586166.stgit@manet.1015granger.net (mailing list archive)
Headers show
Series svcrdma: Go back to releasing pages-under-I/O | expand

Message

Chuck Lever June 12, 2023, 2:09 p.m. UTC
Return to the behavior of releasing reply buffer pages as part of
sending an RPC Reply over RDMA. I measured a performance improvement
(which is documented in 4/4). Matching the page release behavior of
socket transports also means we should be able to share a little
more code between transports as MSG_SPLICE_PAGES rolls out.

Changes since v1:
- Add a related fix
- Clarify some of the patch descriptions

---

Chuck Lever (5):
      SUNRPC: Revert cc93ce9529a6 ("svcrdma: Retain the page backing rq_res.head[0].iov_base")
      SUNRPC: Revert 579900670ac7 ("svcrdma: Remove unused sc_pages field")
      svcrdma: Revert 2a1e4f21d841 ("svcrdma: Normalize Send page handling")
      svcrdma: Prevent page release when nothing was received
      SUNRPC: Optimize page release in svc_rdma_sendto()


 include/linux/sunrpc/svc_rdma.h            |  4 +-
 net/sunrpc/xprtrdma/svc_rdma_backchannel.c |  8 +---
 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    | 12 ++---
 net/sunrpc/xprtrdma/svc_rdma_sendto.c      | 53 ++++++++++++++--------
 4 files changed, 44 insertions(+), 33 deletions(-)

--
Chuck Lever

Comments

Jeff Layton June 12, 2023, 2:25 p.m. UTC | #1
On Mon, 2023-06-12 at 10:09 -0400, Chuck Lever wrote:
> Return to the behavior of releasing reply buffer pages as part of
> sending an RPC Reply over RDMA. I measured a performance improvement
> (which is documented in 4/4). Matching the page release behavior of
> socket transports also means we should be able to share a little
> more code between transports as MSG_SPLICE_PAGES rolls out.
> 
> Changes since v1:
> - Add a related fix
> - Clarify some of the patch descriptions
> 
> ---
> 
> Chuck Lever (5):
>       SUNRPC: Revert cc93ce9529a6 ("svcrdma: Retain the page backing rq_res.head[0].iov_base")
>       SUNRPC: Revert 579900670ac7 ("svcrdma: Remove unused sc_pages field")
>       svcrdma: Revert 2a1e4f21d841 ("svcrdma: Normalize Send page handling")
>       svcrdma: Prevent page release when nothing was received
>       SUNRPC: Optimize page release in svc_rdma_sendto()
> 
> 
>  include/linux/sunrpc/svc_rdma.h            |  4 +-
>  net/sunrpc/xprtrdma/svc_rdma_backchannel.c |  8 +---
>  net/sunrpc/xprtrdma/svc_rdma_recvfrom.c    | 12 ++---
>  net/sunrpc/xprtrdma/svc_rdma_sendto.c      | 53 ++++++++++++++--------
>  4 files changed, 44 insertions(+), 33 deletions(-)
> 
> --
> Chuck Lever
> 

Kind of cool that we're getting to the place where micro-optimizations
like this make such a big difference! This all looks fine to me:

Reviewed-by: Jeff Layton <jlayton@kernel.org>