OSDN Git Service

svcrdma: Convert rdma->sc_rw_ctxts to llist
authorChuck Lever <chuck.lever@oracle.com>
Mon, 8 Feb 2021 20:33:16 +0000 (15:33 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Tue, 17 Aug 2021 15:47:53 +0000 (11:47 -0400)
commit07a92d009f0b1557d3d58905ce18821a483be2e1
tree33041cd8056c135ba9a00515345e78f7d4126f08
parentb6c2bfea096ba22583f1071c10ce0745804b9b95
svcrdma: Convert rdma->sc_rw_ctxts to llist

Relieve contention on sc_rw_ctxt_lock by converting rdma->sc_rw_ctxts
to an llist.

The goal is to reduce the average overhead of Send completions,
because a transport's completion handlers are single-threaded on
one CPU core. This change reduces CPU utilization of each Send
completion by 2-3% on my server.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-By: Tom Talpey <tom@talpey.com>
include/linux/sunrpc/svc_rdma.h
net/sunrpc/xprtrdma/svc_rdma_rw.c
net/sunrpc/xprtrdma/svc_rdma_transport.c