This series adds AF_XDP zero coppy support to am65-cpsw driver. Tests were performed on AM62x-sk with xdpsock application [1].
A clear improvement is seen in 64 byte packets on Transmit (txonly) and receive (rxdrop). 1500 byte test seems to be limited by line rate (1G link) so no improvement seen there in packet rate. A test on higher speed link (or PHY-less setup) might be worthwile. There is some issue during l2fwd with 64 byte packets and benchmark results show 0. I'm still investigating this issue. AF_XDP performance using 64 byte packets in Kpps. Benchmark: XDP-SKB XDP-Native XDP-Native(ZeroCopy) rxdrop 317 504 824 txonly 400 405 757 l2fwd 207 264 0 AF_XDP performance using 1500 byte packets in Kpps. Benchmark: XDP-SKB XDP-Native XDP-Native(ZeroCopy) rxdrop 82 82 82 txonly 82 82 82 l2fwd 82 82 82 [1]: https://github.com/xdp-project/bpf-examples/tree/master/AF_XDP-example To: Signed-off-by: Roger Quadros <rog...@kernel.org> --- Roger Quadros (5): net: ethernet: ti: am65-cpsw: fix BPF Program change on multi-port CPSW net: ethernet: ti: am65-cpsw: add XSK pool helpers net: ethernet: ti: am65-cpsw: Add AF_XDP zero copy for RX net: ethernet: ti: am65-cpsw: Add AF_XDP zero copy for TX net: ethernet: ti: am65-cpsw: enable zero copy in XDP features drivers/net/ethernet/ti/Makefile | 2 +- drivers/net/ethernet/ti/am65-cpsw-nuss.c | 526 +++++++++++++++++++++++++++---- drivers/net/ethernet/ti/am65-cpsw-nuss.h | 37 ++- drivers/net/ethernet/ti/am65-cpsw-xdp.c | 155 +++++++++ 4 files changed, 656 insertions(+), 64 deletions(-) --- base-commit: 9f607dc39b6658ba8ea647bd99725e68c66071b7 change-id: 20250225-am65-cpsw-xdp-zc-2af9e4be1356 Best regards, -- Roger Quadros <rog...@kernel.org>