mirror of https://gitee.com/openkylin/linux.git
05c974669e
An RPC can terminate before its reply arrives, if a credential problem or a soft timeout occurs. After this happens, xprtrdma reports it is out of Receive buffers. A Receive buffer is posted before each RPC is sent, and returned to the buffer pool when a reply is received. If no reply is received for an RPC, that Receive buffer remains posted. But xprtrdma tries to post another when the next RPC is sent. If this happens a few dozen times, there are no receive buffers left to be posted at send time. I don't see a way for a transport connection to recover at that point, and it will spit warnings and unnecessarily delay RPCs on occasion for its remaining lifetime. Commit |
||
---|---|---|
.. | ||
Makefile | ||
backchannel.c | ||
fmr_ops.c | ||
frwr_ops.c | ||
module.c | ||
rpc_rdma.c | ||
svc_rdma.c | ||
svc_rdma_backchannel.c | ||
svc_rdma_marshal.c | ||
svc_rdma_recvfrom.c | ||
svc_rdma_sendto.c | ||
svc_rdma_transport.c | ||
transport.c | ||
verbs.c | ||
xprt_rdma.h |