Hi,
This series significantly reduces the interface downtime while swapping
channels during a configuration change, on capable devices.
Here we remove an old requirement on operations ordering that became
obsolete on recent capable devices. This helps cutting the downtime by a
factor of magnitude, ~80% in our example.
Perf numbers:
Measured the number of dropped packets in a simple ping flood test,
during a configuration change operation, that switches the number of
channels from 247 to 248.
Before: 71 packets lost
After: 15 packets lost, ~80% saving.
Regards,
Tariq
Tariq Toukan (7):
net/mlx5e: Enhance function structures for self loopback prevention
application
net/mlx5e: Use TIR API in mlx5e_modify_tirs_lb()
net/mlx5e: Allow setting self loopback prevention bits on TIR init
net/mlx5: IPoIB, set self loopback prevention in TIR init
net/mlx5e: Do not re-apply TIR loopback configuration if not necessary
net/mlx5e: Pass old channels as argument to mlx5e_switch_priv_channels
net/mlx5e: Defer channels closure to reduce interface down time
drivers/net/ethernet/mellanox/mlx5/core/en.h | 4 +-
.../net/ethernet/mellanox/mlx5/core/en/rss.c | 2 +
.../net/ethernet/mellanox/mlx5/core/en/rss.h | 1 +
.../ethernet/mellanox/mlx5/core/en/rx_res.c | 7 +++
.../ethernet/mellanox/mlx5/core/en/rx_res.h | 1 +
.../net/ethernet/mellanox/mlx5/core/en/tir.c | 29 ++++++++++--
.../net/ethernet/mellanox/mlx5/core/en/tir.h | 3 ++
.../ethernet/mellanox/mlx5/core/en_common.c | 46 +++++++++----------
.../net/ethernet/mellanox/mlx5/core/en_main.c | 31 +++++++++----
.../ethernet/mellanox/mlx5/core/en_selftest.c | 4 +-
.../ethernet/mellanox/mlx5/core/ipoib/ipoib.c | 7 ++-
11 files changed, 94 insertions(+), 41 deletions(-)
base-commit: d550d63d0082268a31e93a10c64cbc2476b98b24
--
2.31.1