[PATCH 0/1] xprtrdma: Post small RPC Calls inline
From: Andrei-Alexandru Bleortu
Date: Thu Oct 15 2026 - 09:09:11 EST
The client posts every RPC Call 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 small Calls with IB_SEND_INLINE.
If the device refuses, it asks for less. The commit message has the
details and the measurements.
The matching server change, "svcrdma: Post small Replies inline", is
going to the NFSD maintainers on its own. The two do not depend on
each other.
It builds with W=1 on Anna's linux-next without new warnings. I tested
it 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. 9836 Calls went inline and 214 by reference.
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 5632 Calls went inline; at 96 or 101 only 3 did, as most
Calls in this test are larger. The guest kernel also carried the
svcrdma patch. Its xprtrdma client code is linux-next's without two
later commits, 0b5bb4e586f7 and 9ee534a75912, which do not change how
Calls are posted.
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):
xprtrdma: Post small RPC Calls inline
net/sunrpc/xprtrdma/rpc_rdma.c | 30 ++++++++++++++++++
net/sunrpc/xprtrdma/verbs.c | 58 +++++++++++++++++++++++++++++++++-
2 files changed, 87 insertions(+), 1 deletion(-)
base-commit: 9ee534a75912361308b1f956bc3e7895a082a422
--
2.56.0