public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next V2 0/4] net/mlx5e: Save per-channel async ICOSQ in default
@ 2026-01-14  7:46 Tariq Toukan
  2026-01-14  7:46 ` [PATCH net-next V2 1/4] net/mlx5e: Move async ICOSQ lock into ICOSQ struct Tariq Toukan
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Tariq Toukan @ 2026-01-14  7:46 UTC (permalink / raw)
  To: Eric Dumazet, Jakub Kicinski, Paolo Abeni, Andrew Lunn,
	David S. Miller
  Cc: Saeed Mahameed, Leon Romanovsky, Tariq Toukan, Mark Bloch, netdev,
	linux-rdma, linux-kernel, Gal Pressman, William Tu, toke

Hi,

This is V2, find V1 here:
https://lore.kernel.org/all/1762939749-1165658-1-git-send-email-tariqt@nvidia.com/

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


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-01-19 21:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-14  7:46 [PATCH net-next V2 0/4] net/mlx5e: Save per-channel async ICOSQ in default Tariq Toukan
2026-01-14  7:46 ` [PATCH net-next V2 1/4] net/mlx5e: Move async ICOSQ lock into ICOSQ struct Tariq Toukan
2026-01-14  7:46 ` [PATCH net-next V2 2/4] net/mlx5e: Use regular ICOSQ for triggering NAPI Tariq Toukan
2026-01-14  7:46 ` [PATCH net-next V2 3/4] net/mlx5e: Move async ICOSQ to dynamic allocation Tariq Toukan
2026-01-14  7:46 ` [PATCH net-next V2 4/4] net/mlx5e: Conditionally create async ICOSQ Tariq Toukan
2026-01-19 21:00 ` [PATCH net-next V2 0/4] net/mlx5e: Save per-channel async ICOSQ in default patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox