]> git.baikalelectronics.ru Git - kernel.git/commit
xprtrdma: Add ro_unmap_sync method for FMR
authorChuck Lever <chuck.lever@oracle.com>
Wed, 16 Dec 2015 22:22:55 +0000 (17:22 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Fri, 18 Dec 2015 20:34:33 +0000 (15:34 -0500)
commit3e9fbdfe1822531af591fc61b20d66d5a76daabe
tree4e45049e1737d1fc5fec1b9aca813eb92fcc0ca9
parent87927d7f12ea09c52d7233406c6033bd824850f1
xprtrdma: Add ro_unmap_sync method for FMR

FMR's ro_unmap method is already synchronous because ib_unmap_fmr()
is a synchronous verb. However, some improvements can be made here.

1. Gather all the MRs for the RPC request onto a list, and invoke
   ib_unmap_fmr() once with that list. This reduces the number of
   doorbells when there is more than one MR to invalidate

2. Perform the DMA unmap _after_ the MRs are unmapped, not before.
   This is critical after invalidating a Write chunk.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
net/sunrpc/xprtrdma/fmr_ops.c