[PATCH net-next 0/7] net/mlx5e: Reduce interface downtime on configuration change

Tariq Toukan posted 7 patches 3 months, 2 weeks ago
There is a newer version of this series
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(-)
[PATCH net-next 0/7] net/mlx5e: Reduce interface downtime on configuration change
Posted by Tariq Toukan 3 months, 2 weeks ago
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