netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 net-next 0/5] ionic: convert Rx queue buffers to use page_pool
@ 2024-08-26 18:44 Brett Creeley
  2024-08-26 18:44 ` [PATCH v2 net-next 1/5] ionic: debug line for Tx completion errors Brett Creeley
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Brett Creeley @ 2024-08-26 18:44 UTC (permalink / raw)
  To: netdev, davem, kuba, edumazet, pabeni; +Cc: shannon.nelson, brett.creeley

From: Shannon Nelson <shannon.nelson@amd.com>

Our home-grown buffer management needs to go away and we need to play
nicely with the page_pool infrastructure.  This patchset cleans up some
of our API use and converts the Rx traffic queues to use page_pool.
The first few patches are for tidying up things before the last patch
which does the actual conversion.

The result is code that more closely follows current patterns, as well as
a either a performance boost or equivalent performance as seen with
iperf testing:

  mss   netio    tx_pps      rx_pps      total_pps      tx_bw    rx_bw    total_bw
  ----  -------  ----------  ----------  -----------  -------  -------  ----------
Before:
  256   bidir    13,839,293  15,515,227  29,354,520        34       38          71
  512   bidir    13,913,249  14,671,693  28,584,942        62       65         127
  1024  bidir    13,006,189  13,695,413  26,701,602       109      115         224
  1448  bidir    12,489,905  12,791,734  25,281,639       145      149         294
  2048  bidir    9,195,622   9,247,649   18,443,271       148      149         297
  4096  bidir    5,149,716   5,247,917   10,397,633       160      163         323
  8192  bidir    3,029,993   3,008,882   6,038,875        179      179         358
  9000  bidir    2,789,358   2,800,744   5,590,102        181      180         361

After:
  256   bidir    21,540,037  21,344,644  42,884,681        52       52         104
  512   bidir    23,170,014  19,207,260  42,377,274       103       85         188
  1024  bidir    17,934,280  17,819,247  35,753,527       150      149         299
  1448  bidir    15,242,515  14,907,030  30,149,545       167      174         341
  2048  bidir    10,692,542  10,663,023  21,355,565       177      176         353
  4096  bidir    6,024,977   6,083,580   12,108,557       187      180         367
  8192  bidir    3,090,449   3,048,266   6,138,715        180      176         356
  9000  bidir    2,859,146   2,864,226   5,723,372        178      180         358

v2:
 - split out prep work into separate patches
 - reworked to always use rxq_info structs
 - be sure we're in NAPI when calling xdp_return_frame_rx_napi()
 - fixed up issues with buffer size and lifetime management

v1/RFC:
 - Link: https://lore.kernel.org/netdev/20240625165658.34598-1-shannon.nelson@amd.com/

Shannon Nelson (5):
  ionic: debug line for Tx completion errors
  ionic: rename ionic_xdp_rx_put_bufs
  ionic: use per-queue xdp_prog
  ionic: always use rxq_info
  ionic: convert Rx queue buffers to use page_pool

 drivers/net/ethernet/pensando/Kconfig         |   1 +
 .../net/ethernet/pensando/ionic/ionic_dev.h   |  21 +-
 .../net/ethernet/pensando/ionic/ionic_lif.c   | 121 +++---
 .../net/ethernet/pensando/ionic/ionic_txrx.c  | 372 +++++++++---------
 4 files changed, 267 insertions(+), 248 deletions(-)

-- 
2.17.1


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

end of thread, other threads:[~2024-08-27 22:32 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-26 18:44 [PATCH v2 net-next 0/5] ionic: convert Rx queue buffers to use page_pool Brett Creeley
2024-08-26 18:44 ` [PATCH v2 net-next 1/5] ionic: debug line for Tx completion errors Brett Creeley
2024-08-26 18:44 ` [PATCH v2 net-next 2/5] ionic: rename ionic_xdp_rx_put_bufs Brett Creeley
2024-08-26 18:44 ` [PATCH v2 net-next 3/5] ionic: use per-queue xdp_prog Brett Creeley
2024-08-27 11:44   ` Larysa Zaremba
2024-08-27 11:57     ` Larysa Zaremba
2024-08-27 22:27       ` Brett Creeley
2024-08-27 21:40     ` Brett Creeley
2024-08-26 18:44 ` [PATCH v2 net-next 4/5] ionic: always use rxq_info Brett Creeley
2024-08-27 12:08   ` Larysa Zaremba
2024-08-27 22:32     ` Brett Creeley
2024-08-26 18:44 ` [PATCH v2 net-next 5/5] ionic: convert Rx queue buffers to use page_pool Brett Creeley
2024-08-27 19:59   ` kernel test robot
2024-08-27 22:22   ` kernel test robot

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).