aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtrdma/transport.c
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2019-08-19 18:48:43 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2019-08-21 11:45:27 -0400
commitb0b227f071a06d0ce5ef803538899299933d2931 (patch)
treea4d8eaa70289da84c14a528cbc38257bc53f9994 /net/sunrpc/xprtrdma/transport.c
parentxprtrdma: Remove rpcrdma_buffer::rb_mrlock (diff)
downloadlinux-dev-b0b227f071a06d0ce5ef803538899299933d2931.tar.xz
linux-dev-b0b227f071a06d0ce5ef803538899299933d2931.zip
xprtrdma: Use an llist to manage free rpcrdma_reps
rpcrdma_rep objects are removed from their free list by only a single thread: the Receive completion handler. Thus that free list can be converted to an llist, where a single-threaded consumer and a multi-threaded producer (rpcrdma_buffer_put) can both access the llist without the need for any serialization. This eliminates spin lock contention between the Receive completion handler and rpcrdma_buffer_get, and makes the rep consumer wait- free. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'net/sunrpc/xprtrdma/transport.c')
0 files changed, 0 insertions, 0 deletions