Revert "svcrdma: Add Write chunk WRs to the RPC's Send WR chain"
authorChuck Lever <chuck.lever@oracle.com>
Fri, 19 Apr 2024 15:51:12 +0000 (11:51 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sat, 20 Apr 2024 15:20:41 +0000 (11:20 -0400)
commit32cf5a4eda464d76d553ee3f1b06c4d33d796c52
treeaabc832c30c8176a3675573bc4157163e869e119
parentf488138b526715c6d2568d7329c4477911be4210
Revert "svcrdma: Add Write chunk WRs to the RPC's Send WR chain"

Performance regression reported with NFS/RDMA using Omnipath,
bisected to commit e084ee673c77 ("svcrdma: Add Write chunk WRs to
the RPC's Send WR chain").

Tracing on the server reports:

  nfsd-7771  [060]  1758.891809: svcrdma_sq_post_err:
cq.id=205 cid=226 sc_sq_avail=13643/851 status=-12

sq_post_err reports ENOMEM, and the rdma->sc_sq_avail (13643) is
larger than rdma->sc_sq_depth (851). The number of available Send
Queue entries is always supposed to be smaller than the Send Queue
depth. That seems like a Send Queue accounting bug in svcrdma.

As it's getting to be late in the 6.9-rc cycle, revert this commit.
It can be revisited in a subsequent kernel release.

Link: https://bugzilla.kernel.org/show_bug.cgi?id=218743
Fixes: e084ee673c77 ("svcrdma: Add Write chunk WRs to the RPC's Send WR chain")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
include/linux/sunrpc/svc_rdma.h
net/sunrpc/xprtrdma/svc_rdma_rw.c
net/sunrpc/xprtrdma/svc_rdma_sendto.c