[PATCH net-next V2 0/4] net/mlx5e: Save per-channel async ICOSQ in default
From: Tariq Toukan <tariqt@nvidia.com>
Date: 2026-01-14 07:48:37
Also in:
linux-rdma, lkml
Hi, This is V2, find V1 here: https://lore.kernel.org/all/1762939749-1165658-1-git-send-email-tariqt@nvidia.com/ (local) This series by William reduces the default number of SQs in a channel from 3 down to 2, by not creating the async ICOSQ (asynchronous internal-communication-operations send-queue). This significantly improves the latency of channel configuration operations, like interface up (create channels), interface down (destroy channels), and channels reconfiguration (create new set, destroy old one). This reduces the per-channel memory usage, saves hardware resources, in addition to the improved latency. This significantly speeds up the setup/config stage on systems with high number of channels or many netdevs, in particular systems with hundreds or K's of SFs. The two remaining default SQs per channel after this series: 1 TXQ SQ (for traffic), and 1 ICOSQ (for internal communication operations with the device). Perf numbers: NIC: Connect-X7. Test: Latency of interface up + down operations. Measured 20% speedup. Saving ~0.36 sec for 248 channels (~1.45 msec per channel). Regards, Tariq V2: - Drop accepted parts (patches 5-6). - Patch 2: Add conditional locking justification in commit message. Remove in_softirq() optimization. - Patch 4: Simple code enhancements. Update commit message. William Tu (4): net/mlx5e: Move async ICOSQ lock into ICOSQ struct net/mlx5e: Use regular ICOSQ for triggering NAPI net/mlx5e: Move async ICOSQ to dynamic allocation net/mlx5e: Conditionally create async ICOSQ drivers/net/ethernet/mellanox/mlx5/core/en.h | 26 ++++- .../mellanox/mlx5/core/en/reporter_tx.c | 1 + .../ethernet/mellanox/mlx5/core/en/xsk/rx.c | 3 + .../ethernet/mellanox/mlx5/core/en/xsk/tx.c | 6 +- .../mellanox/mlx5/core/en_accel/ktls.c | 10 +- .../mellanox/mlx5/core/en_accel/ktls_rx.c | 26 ++--- .../mellanox/mlx5/core/en_accel/ktls_txrx.h | 3 +- .../net/ethernet/mellanox/mlx5/core/en_main.c | 100 +++++++++++++----- .../net/ethernet/mellanox/mlx5/core/en_rx.c | 4 + .../net/ethernet/mellanox/mlx5/core/en_txrx.c | 37 ++++--- 10 files changed, 154 insertions(+), 62 deletions(-) base-commit: 3b194343c25084a8d2fa0c0f2c9e80f3080fd732 -- 2.31.1