• Chuck Lever's avatar
    xprtrdma: Send Queue size grows after a reconnect · 98ef77d1
    Chuck Lever authored
    Eli Dorfman reports that after a series of idle disconnects, an
    RPC/RDMA transport becomes unusable (rdma_create_qp returns
    -ENOMEM). Problem was tracked down to increasing Send Queue size
    after each reconnect.
    
    The rdma_create_qp() API does not promise to leave its @qp_init_attr
    parameter unaltered. In fact, some drivers do modify one or more of
    its fields. Thus our calls to rdma_create_qp must use a fresh copy
    of ib_qp_init_attr each time.
    
    This fix is appropriate for kernels dating back to late 2007, though
    it will have to be adapted, as the connect code has changed over the
    years.
    Reported-by: default avatarEli Dorfman <eli@vastdata.com>
    Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
    Signed-off-by: default avatarAnna Schumaker <Anna.Schumaker@Netapp.com>
    98ef77d1
verbs.c 38.4 KB