• Chuck Lever's avatar
    xprtrdma: Support for SG_GAP devices · 5e9fc6a0
    Chuck Lever authored
    Some devices (such as the Mellanox CX-4) can register, under a
    single R_key, a set of memory regions that are not contiguous. When
    this is done, all the segments in a Reply list, say, can then be
    invalidated in a single LocalInv Work Request (or via Remote
    Invalidation, which can invalidate exactly one R_key when completing
    a Receive).
    
    This means a single FastReg WR is used to register, and one or zero
    LocalInv WRs can invalidate, the memory involved with RDMA transfers
    on behalf of an RPC.
    
    In addition, xprtrdma constructs some Reply chunks from three or
    more segments. By registering them with SG_GAP, only one segment
    is needed for the Reply chunk, allowing the whole chunk to be
    invalidated remotely.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    5e9fc6a0
frwr_ops.c 16.5 KB