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
V2:
- Fix coccinelle false-positive in patch 2.
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 | 52 +++++++++----------
.../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, 97 insertions(+), 44 deletions(-)
base-commit: 1bae0fd90077875b6c9c853245189032cbf019f7
--
2.31.1