Re: [PATCH rdma-rc 4/7] IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/18/2016 2:53 AM, Leon Romanovsky wrote:
> On Fri, Sep 16, 2016 at 02:01:57PM -0400, Doug Ledford wrote:
>> On 9/12/2016 12:16 PM, Leon Romanovsky wrote:
>>> From: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
>>>
>>> In MLX qp packets, the LRH (built by the driver) has both a VL field
>>> and an SL field. When building a QP1 packet, the VL field should
>>> reflect the SLtoVL mapping and not arbitrarily contain zero (as is
>>> done now). This bug causes credit problems in IB switches at
>>> high rates of QP1 packets.
>>>
>>> The fix is to cache the SL to VL mapping in the driver, and look up
>>> the VL mapped to the SL provided in the send request when sending
>>> QP1 packets.
>>>
>>> For FW versions which support generating a port_management_config_change
>>> event with subtype sl-to-vl-table-change, the driver uses that event
>>> to update its sl-to-vl mapping cache.  Otherwise, the driver snoops
>>> incoming SMP mads to update the cache.
>>>
>>> There remains the case where the FW is running in secure-host mode
>>> (so no QP0 packets are delivered to the driver), and the FW does not
>>> generate the sl2vl mapping change event. To support this case, the
>>> driver updates (via querying the FW) its sl2vl mapping cache when
>>> running in secure-host mode when it receives either a Port Up event
>>> or a client-reregister event (where the port is still up, but there
>>> may have been an opensm failover).
>>> OpenSM modifies the sl2vl mapping before Port Up and Client-reregister
>>> events occur, so if there is a mapping change the driver's cache will
>>> be properly updated.
>>>
>>> Fixes: 225c7b1feef1 ("IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters")
>>> Signed-off-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx>
>>> Signed-off-by: Leon Romanovsky <leon@xxxxxxxxxx>
>>> ---
>>>  drivers/infiniband/hw/mlx4/mad.c        |  64 ++++++++++++++++++-
>>>  drivers/infiniband/hw/mlx4/main.c       | 110 +++++++++++++++++++++++++++++++-
>>>  drivers/infiniband/hw/mlx4/mlx4_ib.h    |   7 ++
>>>  drivers/infiniband/hw/mlx4/qp.c         |  23 ++++++-
>>>  drivers/net/ethernet/mellanox/mlx4/fw.c |  13 ++--
>>>  include/linux/mlx4/device.h             |  13 +++-
>>>  6 files changed, 220 insertions(+), 10 deletions(-)
>>
>> That's a lot more code churn than I would like to see in a late RC.  I'm
>> going to drop this patch and move it to 4.9 instead.  If this fixed an
>> oops or something like that, I would be more open to taking it now, but
>> the problem being resolved is credits on a switch.  That isn't the sort
>> of showstopper issue that would justify this large of a patch this late
>> in the cycle.
> 
> No problem, Thanks.

This is now in my 4.9-misc branch.


-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG Key ID: 0E572FDD

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux