[PATCH 0/1] svcrdma: Post small Replies inline
From: Andrei-Alexandru Bleortu
Date: Thu Oct 15 2026 - 09:23:10 EST
The server posts every Reply by reference, so the HCA reads it from
host memory before transmitting. This patch asks for 256 bytes of
inline data at QP creation and posts a small Reply with IB_SEND_INLINE
when it is the only WR in its ib_post_send() call. If the device
refuses, it asks for less. The commit message has the details and the
measurements.
The matching client change, "xprtrdma: Post small RPC Calls inline",
is going to the NFS client maintainers on its own. The two do not
depend on each other.
It builds with W=1 on nfsd-testing without new warnings. I tested it
on the nfsd-testing of 25 September, in a QEMU guest with rdma_rxe on
a dummy netdev. The NFS client and server ran on the same host over
RDMA, using NFSv3 and NFSv4.1. 8 MiB of 4 KiB O_DIRECT writes and
reads, and 200 small files, compared equal on the client and in the
exported file. 5529 Sends went inline and 4521 by reference. The
latter include the READ replies, which follow their data in the same
chain.
I also made rxe refuse inline requests above a limit and report a
chosen vendor ID. The data still compared equal in each case:
vendor ID limit QP got
Intel 216/101/48 216/101/48 bytes
Alibaba 96 96 bytes
rxe 101 96 bytes
At 216 bytes 5329 Sends went inline; at 96 or 101 only 6 did, as most
Replies in this test are larger. The guest kernel also carried the
xprtrdma patch.
I wrote this patch with an LLM coding assistant (Claude Code), which
also drafted the commit message and ran the build and the VM test.
Andrei-Alexandru Bleortu (1):
svcrdma: Post small Replies inline
include/linux/sunrpc/svc_rdma.h | 2 +
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 31 ++++++++++--
net/sunrpc/xprtrdma/svc_rdma_transport.c | 62 +++++++++++++++++++++++-
3 files changed, 90 insertions(+), 5 deletions(-)
base-commit: 78c334bc5ae61d23ca1cc2e43079c620f1d40866
--
2.56.0