• Zach Brown's avatar
    RDS/IB: get the xmit max_sge from the RDS IB device on the connection · 89bf9d41
    Zach Brown authored
    rds_ib_xmit_rdma() was calling ib_get_client_data() to get at the rds_ibdevice
    just to get the max_sge for the transmit.  This patch instead has it get it
    directly off the rds_ibdev which is stored on the connection.
    
    The current code won't free the rds_ibdev until all the IB connections that use
    it are freed.  So it's safe to reference the rds_ibdev this way.  In the future
    it also makes it easier to support proper reference counting of the rds_ibdev
    struct.
    
    As an additional bonus, this gets rid of the performance hit of calling in to
    the IB stack to look up the rds_ibdev.  The current implementation in the IB
    stack acquires an interrupt blocking spinlock to protect the registration of
    client callback data.
    Signed-off-by: default avatarZach Brown <zach.brown@oracle.com>
    89bf9d41
ib_send.c 27.7 KB