mlxsw: PCI: Send EMAD traffic on a separate queue
authorPetr Machata <petrm@mellanox.com>
Thu, 3 Oct 2019 05:44:49 +0000 (08:44 +0300)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Oct 2019 19:17:10 +0000 (12:17 -0700)
commit6aaee55cc8c6c305bb758545e7ceadc1bfcf7684
treef826ce973f7a9d61e9b1a6418a95b5918fce88bc
parent9b17f5884be4484e4d9090a9dccf17e763e0589b
mlxsw: PCI: Send EMAD traffic on a separate queue

Currently mlxsw distributes sent traffic among all the available send
queues. That includes control traffic as well as EMADs, which are used for
configuration of the device.

However because all the queues have the same traffic class of 3, they all
end up being directed to the same traffic class buffer. If the control
traffic in the buffer cannot be serviced quickly enough, the EMAD traffic
might be shut out, which causes transient failures, typically in FDB
maintenance, counter upkeep and other periodic work.

To address this issue, dedicate SDQ 0 to EMAD traffic, with TC 0.
Distribute the control traffic among the remaining queues, which are left
with their current TC 3.

Suggested-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Petr Machata <petrm@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/pci.c
drivers/net/ethernet/mellanox/mlxsw/pci_hw.h