|
|
Subscribe / Log in / New account

Add AF_XDP zero copy support

From:  Meghana Malladi <m-malladi-AT-ti.com>
To:  <horms-AT-kernel.org>, <namcao-AT-linutronix.de>, <jacob.e.keller-AT-intel.com>, <m-malladi-AT-ti.com>, <christian.koenig-AT-amd.com>, <sumit.semwal-AT-linaro.org>, <sdf-AT-fomichev.me>, <john.fastabend-AT-gmail.com>, <hawk-AT-kernel.org>, <daniel-AT-iogearbox.net>, <ast-AT-kernel.org>, <pabeni-AT-redhat.com>, <kuba-AT-kernel.org>, <edumazet-AT-google.com>, <davem-AT-davemloft.net>, <andrew+netdev-AT-lunn.ch>
Subject:  [PATCH net-next v3 0/6] Add AF_XDP zero copy support
Date:  Tue, 14 Oct 2025 16:26:06 +0530
Message-ID:  <20251014105613.2808674-1-m-malladi@ti.com>
Cc:  <linaro-mm-sig-AT-lists.linaro.org>, <dri-devel-AT-lists.freedesktop.org>, <linux-media-AT-vger.kernel.org>, <bpf-AT-vger.kernel.org>, <linux-kernel-AT-vger.kernel.org>, <netdev-AT-vger.kernel.org>, <linux-arm-kernel-AT-lists.infradead.org>, <srk-AT-ti.com>, Vignesh Raghavendra <vigneshr-AT-ti.com>, Roger Quadros <rogerq-AT-kernel.org>, <danishanwar-AT-ti.com>
Archive-link:  Article

This series adds AF_XDP zero coppy support to icssg driver.

Tests were performed on AM64x-EVM with xdpsock application [1].

A clear improvement is seen Transmit (txonly) and receive (rxdrop)
for 64 byte packets. 1500 byte test seems to be limited by line
rate (1G link) so no improvement seen there in packet rate

Having some issue with l2fwd as the benchmarking numbers show 0
for 64 byte packets after forwading first batch packets and I am
currently looking into it.

AF_XDP performance using 64 byte packets in Kpps.
Benchmark:	XDP-SKB		XDP-Native	XDP-Native(ZeroCopy)
rxdrop		259		462		645
txonly		350		354		760
l2fwd 		178		240		0

AF_XDP performance using 1500 byte packets in Kpps.
Benchmark:	XDP-SKB		XDP-Native	XDP-Native(ZeroCopy)
rxdrop		82		82		82
txonly		81		82		82
l2fwd 		81		82		82

[1]: https://github.com/xdp-project/bpf-examples/tree/master/A...

v2: https://lore.kernel.org/all/20250901100227.1150567-1-m-ma...

Meghana Malladi (6):
  net: ti: icssg-prueth: Add functions to create and destroy Rx/Tx
    queues
  net: ti: icssg-prueth: Add XSK pool helpers
  net: ti: icssg-prueth: Add AF_XDP zero copy for TX
  net: ti: icssg-prueth: Make emac_run_xdp function independent of page
  net: ti: icssg-prueth: Add AF_XDP zero copy for RX
  net: ti: icssg-prueth: Enable zero copy in XDP features

 drivers/net/ethernet/ti/icssg/icssg_common.c | 470 ++++++++++++++++---
 drivers/net/ethernet/ti/icssg/icssg_prueth.c | 394 +++++++++++++---
 drivers/net/ethernet/ti/icssg/icssg_prueth.h |  25 +-
 3 files changed, 740 insertions(+), 149 deletions(-)


base-commit: db1b6006668623b46a3f6b3fe6b5f030e4c60a42
-- 
2.43.0




Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds