• Chuck Lever's avatar
    xprtrdma: Create more MRs at a time · c421ece6
    Chuck Lever authored
    Some devices require more than 3 MRs to build a single 1MB I/O.
    Ensure that rpcrdma_mrs_create() will add enough MRs to build that
    I/O.
    
    In a subsequent patch I'm changing the MR recovery logic to just
    toss out the MRs. In that case it's possible for ->send_request to
    loop acquiring some MRs, not getting enough, getting called again,
    recycling the previous MRs, then not getting enough, lather rinse
    repeat. Thus first we need to ensure enough MRs are created to
    prevent that loop.
    
    I'm "reusing" ia->ri_max_segs. All of its accessors seem to want the
    maximum number of data segments plus two, so I'm going to bake that
    into the initial calculation.
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    c421ece6
rpc_rdma.c 37.1 KB