]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
xprtrdma: Post receive buffers after RPC completion
authorChuck Lever <chuck.lever@oracle.com>
Fri, 6 Mar 2026 21:56:28 +0000 (16:56 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 13 Apr 2026 19:05:01 +0000 (12:05 -0700)
commit704f3f640f72db4d44ec5ce3db8d4e150c974bc7
tree868e6b8f47ba3b13bfea09f7315c19350b0e3194
parent93b4791adb1017b2b079b4a453e7159e101a7e55
xprtrdma: Post receive buffers after RPC completion

rpcrdma_post_recvs() runs in CQ poll context and its cost
falls on the latency-critical path between polling a Receive
completion and waking the RPC consumer. Every cycle spent
refilling the Receive Queue delays delivery of the reply to
the NFS layer.

Move the rpcrdma_post_recvs() call in rpcrdma_reply_handler()
to after the RPC has been decoded and completed. The larger
batch size from the preceding patch provides sufficient
Receive Queue headroom to absorb the brief delay before
buffers are replenished.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
net/sunrpc/xprtrdma/rpc_rdma.c