diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2023-11-21 11:40:33 -0500 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2024-01-07 17:54:27 -0500 |
commit | ae225fe27b931de89b6b1e1bbe6de4de23000850 (patch) | |
tree | 25de5c80e0f71497debcc0d9de48445aa7810e50 /include | |
parent | 9c7e1a06588ee6962afe0dfe5a398e1d23212005 (diff) | |
download | linux-stable-ae225fe27b931de89b6b1e1bbe6de4de23000850.tar.gz linux-stable-ae225fe27b931de89b6b1e1bbe6de4de23000850.tar.bz2 linux-stable-ae225fe27b931de89b6b1e1bbe6de4de23000850.zip |
svcrdma: Add an async version of svc_rdma_send_ctxt_put()
DMA unmapping can take quite some time, so it should not be handled
in a single-threaded completion handler. Defer releasing send_ctxts
to the recently-added workqueue.
With this patch, DMA unmapping can be handled in parallel, and it
does not cause head-of-queue blocking of Send completions.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/sunrpc/svc_rdma.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h index e18c94e816b3..ab250017b99f 100644 --- a/include/linux/sunrpc/svc_rdma.h +++ b/include/linux/sunrpc/svc_rdma.h @@ -152,7 +152,9 @@ struct svc_rdma_recv_ctxt { struct svc_rdma_send_ctxt { struct llist_node sc_node; struct rpc_rdma_cid sc_cid; + struct work_struct sc_work; + struct svcxprt_rdma *sc_rdma; struct ib_send_wr sc_send_wr; struct ib_cqe sc_cqe; struct xdr_buf sc_hdrbuf; |