• Christoph Lameter's avatar
    RDMA/ipoib: Remove racy Subnet Manager sendonly join checks · 633d6102
    Christoph Lameter authored
    When a system receives a REREG event from the SM, then the SM information
    in the kernel is marked as invalid and a request is sent to the SM to
    update the information. The SM information is invalid in that time period.
    
    However, receiving a REREG also occurs simultaneously in user space
    applications that are now trying to rejoin the multicast groups. Some of
    those may be sendonly multicast groups which are then failing.
    
    If the SM information is invalid then ib_sa_sendonly_fullmem_support()
    returns false. That is wrong because it just means that we do not know yet
    if the potentially new SM supports sendonly joins.
    
    Sendonly join was introduced in 2015 and all the Subnet managers have
    supported it ever since. So there is no point in checking if a subnet
    manager supports it.
    
    Should an old opensm get a request for a sendonly join then the request
    will fail. The code that is removed here accomodated that situation and
    fell back to a full join.
    
    Falling back to a full join is problematic in itself. The reason to use
    the sendonly join was to reduce the traffic on the Infiniband fabric
    otherwise one could have just stayed with the regular join.  So this patch
    may cause users of very old opensms to discover that lots of traffic
    needlessly crosses their IB fabrics.
    
    Link: https://lore.kernel.org/r/alpine.DEB.2.22.394.2101281845160.13303@www.lameter.comSigned-off-by: default avatarChristoph Lameter <cl@linux.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    633d6102
cma.c 131 KB