netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 0/4] eth: mlx4: use the page pool for Rx buffers
@ 2025-02-05  3:12 Jakub Kicinski
  2025-02-05  3:12 ` [PATCH net-next 1/4] eth: mlx4: create a page pool for Rx Jakub Kicinski
                   ` (4 more replies)
  0 siblings, 5 replies; 23+ messages in thread
From: Jakub Kicinski @ 2025-02-05  3:12 UTC (permalink / raw)
  To: davem
  Cc: netdev, edumazet, pabeni, andrew+netdev, horms, tariqt, hawk,
	Jakub Kicinski

Convert mlx4 to page pool. I've been sitting on these patches for
over a year, and Jonathan Lemon had a similar series years before.
We never deployed it or sent upstream because it didn't really show
much perf win under normal load (admittedly I think the real testing
was done before Ilias's work on recycling).

During the v6.9 kernel rollout Meta's CDN team noticed that machines
with CX3 Pro (mlx4) are prone to overloads (double digit % of CPU time
spent mapping buffers in the IOMMU). The problem does not occur with
modern NICs, so I dusted off this series and reportedly it still works.
And it makes the problem go away, no overloads, perf back in line with
older kernels. Something must have changed in IOMMU code, I guess.

This series is very simple, and can very likely be optimized further.
Thing is, I don't have access to any CX3 Pro NICs. They only exist
in CDN locations which haven't had a HW refresh for a while. So I can
say this series survives a week under traffic w/ XDP enabled, but
my ability to iterate and improve is a bit limited.

Jakub Kicinski (4):
  eth: mlx4: create a page pool for Rx
  eth: mlx4: don't try to complete XDP frames in netpoll
  eth: mlx4: remove the local XDP fast-recycling ring
  eth: mlx4: use the page pool for Rx buffers

 drivers/net/ethernet/mellanox/mlx4/mlx4_en.h |  15 +--
 drivers/net/ethernet/mellanox/mlx4/en_rx.c   | 120 +++++++------------
 drivers/net/ethernet/mellanox/mlx4/en_tx.c   |  17 ++-
 3 files changed, 53 insertions(+), 99 deletions(-)

-- 
2.48.1


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

end of thread, other threads:[~2025-02-11 19:44 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-05  3:12 [PATCH net-next 0/4] eth: mlx4: use the page pool for Rx buffers Jakub Kicinski
2025-02-05  3:12 ` [PATCH net-next 1/4] eth: mlx4: create a page pool for Rx Jakub Kicinski
2025-02-06 19:44   ` Tariq Toukan
2025-02-06 23:04     ` Jakub Kicinski
2025-02-11 18:01       ` Tariq Toukan
2025-02-11 19:06         ` Jakub Kicinski
2025-02-11 19:11           ` Tariq Toukan
2025-02-11 19:21             ` Tariq Toukan
2025-02-11 19:23               ` Jakub Kicinski
2025-02-11 19:38                 ` Tariq Toukan
2025-02-11 19:18   ` Tariq Toukan
2025-02-11 19:44     ` Jakub Kicinski
2025-02-05  3:12 ` [PATCH net-next 2/4] eth: mlx4: don't try to complete XDP frames in netpoll Jakub Kicinski
2025-02-06 19:50   ` Tariq Toukan
2025-02-06 23:05     ` Jakub Kicinski
2025-02-05  3:12 ` [PATCH net-next 3/4] eth: mlx4: remove the local XDP fast-recycling ring Jakub Kicinski
2025-02-05  3:12 ` [PATCH net-next 4/4] eth: mlx4: use the page pool for Rx buffers Jakub Kicinski
2025-02-05 18:05   ` Ido Schimmel
2025-02-05 19:11     ` Jakub Kicinski
2025-02-06 12:57 ` [PATCH net-next 0/4] " Tariq Toukan
2025-02-06 15:58   ` Jakub Kicinski
2025-02-11 18:05     ` Tariq Toukan
2025-02-11 18:50       ` Jakub Kicinski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).