Re: [PATCH rdma-rc 4/7] IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets
From: Doug Ledford <hidden>
Date: 2016-09-23 16:48:08
On 9/18/2016 2:53 AM, Leon Romanovsky wrote:
On Fri, Sep 16, 2016 at 02:01:57PM -0400, Doug Ledford wrote:quoted
On 9/12/2016 12:16 PM, Leon Romanovsky wrote:quoted
From: Jack Morgenstein <redacted> 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 <redacted> Signed-off-by: Leon Romanovsky <redacted> --- 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 [off-list ref]
GPG Key ID: 0E572FDD
Attachments
- signature.asc [application/pgp-signature] 884 bytes