]> www.infradead.org Git - users/jedix/linux-maple.git/commit
xprtrdma: Acquire FMRs in rpcrdma_fmr_register_external()
authorChuck Lever <chuck.lever@oracle.com>
Tue, 25 Aug 2015 18:40:44 +0000 (12:40 -0600)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 31 Aug 2015 20:45:56 +0000 (14:45 -0600)
commit8c735e9e35068d9f04571e25782393aee4220107
treefbe8e9295a90cdf8f7f1c54373c40a86c8d87530
parent62bad9072a41ab972d0d66b580e988f2da090f9b
xprtrdma: Acquire FMRs in rpcrdma_fmr_register_external()

[ Upstream commit fc7fbb59e70c65e2bd6170a6de139d5de62dd2be ]

Acquiring 64 FMRs in rpcrdma_buffer_get() while holding the buffer
pool lock is expensive, and unnecessary because FMR mode can
transfer up to a 1MB payload using just a single ib_fmr.

Instead, acquire ib_fmrs one-at-a-time as chunks are registered, and
return them to rb_mws immediately during deregistration.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Tested-By: Devesh Sharma <devesh.sharma@avagotech.com>
Reviewed-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/fmr_ops.c
net/sunrpc/xprtrdma/verbs.c