linux/net/sunrpc/xprtrdma
Chuck Lever bade4be69a svcrdma: Revert "svcrdma: Reduce Receive doorbell rate"
I tested commit 43042b90ca ("svcrdma: Reduce Receive doorbell
rate") with mlx4 (IB) and software iWARP and didn't find any
issues. However, I recently got my hardware iWARP setup back on
line (FastLinQ) and it's crashing hard on this commit (confirmed
via bisect).

The failure mode is complex.
 - After a connection is established, the first Receive completes
   normally.
 - But the second and third Receives have garbage in their Receive
   buffers. The server responds with ERR_VERS as a result.
 - When the client tears down the connection to retry, a couple
   of posted Receives flush twice, and that corrupts the recv_ctxt
   free list.
 - __svc_rdma_free then faults or loops infinitely while destroying
   the xprt's recv_ctxts.

Since 43042b90ca ("svcrdma: Reduce Receive doorbell rate") does
not fix a bug but is a scalability enhancement, it's safe and
appropriate to revert it while working on a replacement.

Fixes: 43042b90ca ("svcrdma: Reduce Receive doorbell rate")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
2021-03-11 15:26:07 -05:00
..
backchannel.c rpcrdma: Fix comments about reverse-direction operation 2021-02-05 11:16:56 -05:00
frwr_ops.c xprtrdma: Refactor invocations of offset_in_page() 2021-02-05 11:16:56 -05:00
Makefile svcrdma: Add a "parsed chunk list" data structure 2020-11-30 13:00:22 -05:00
module.c SUNRPC: xprt_load_transport() needs to support the netid "rdma6" 2020-12-02 14:05:52 -05:00
rpc_rdma.c xprtrdma: Clean up rpcrdma_prepare_readch() 2021-02-05 15:54:03 -05:00
svc_rdma.c svcrdma: Deprecate stat variables that are no longer used 2021-01-25 09:36:28 -05:00
svc_rdma_backchannel.c svcrdma: disable timeouts on rdma backchannel 2021-03-06 16:41:48 -05:00
svc_rdma_pcl.c svcrdma: Add a "parsed chunk list" data structure 2020-11-30 13:00:22 -05:00
svc_rdma_recvfrom.c svcrdma: Revert "svcrdma: Reduce Receive doorbell rate" 2021-03-11 15:26:07 -05:00
svc_rdma_rw.c svcrdma: Restore read and write stats 2021-01-25 09:36:28 -05:00
svc_rdma_sendto.c svcrdma: Convert rdma_stat_sq_starve to a per-CPU counter 2021-01-25 09:36:28 -05:00
svc_rdma_transport.c svcrdma: Hold private mutex while invoking rdma_accept() 2021-02-15 10:45:00 -05:00
transport.c NFSoRDmA Client updates for Linux 5.11 2020-12-15 20:08:41 -05:00
verbs.c xprtrdma: Move rpcrdma_mr_put() 2020-11-11 10:52:18 -05:00
xprt_rdma.h rpcrdma: Fix comments about reverse-direction operation 2021-02-05 11:16:56 -05:00