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/AF_XDP-example

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 | 399 +++++++++++++++++--
 drivers/net/ethernet/ti/icssg/icssg_prueth.c | 379 +++++++++++++++---
 drivers/net/ethernet/ti/icssg/icssg_prueth.h |  26 +-
 3 files changed, 696 insertions(+), 108 deletions(-)


base-commit: 715c7a36d59f54162a26fac1d1ed8dc087a24cf1
-- 
2.43.0

Reply via email to