Skip to content

add XDP support to mvneta driver

Lorenzo Bianconi netdev 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest7 patches 2 repliesIn review
  2. v47 patches 8 repliesSuperseded
  3. v38 patches 16 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v28 patches8 repliesSuperseded
v17 patches4 repliesSuperseded

Changes in v5 from the cover letter

- reset page_pool pointer to NULL in mvneta_rxq_drop_pkts and in mvneta_create_page_pool error path
- move dma sync in mvneta_rx_refill() in patch 2/7
- verify bpf prog pointer in mvneta_xdp_setup to double-check if stop/start is really necessary
- coding style fixes

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7net: mvneta: introduce mvneta_update_stats routinedrivers/net/ethernet/marvell/mvneta.c+22 -210 replies
2/7net: mvneta: introduce page pool API for sw buffer managerdrivers/net/ethernet/marvell/Kconfig drivers/net/ethernet/marvell/mvneta.c+65 -190 replies
3/7net: mvneta: rely on build_skb in mvneta_rx_swbm poll routinedrivers/net/ethernet/marvell/mvneta.c+95 -840 replies
4/7net: mvneta: add basic XDP supportdrivers/net/ethernet/marvell/mvneta.c+139 -90 replies
5/7net: mvneta: move header prefetch in mvneta_swbm_rx_framedrivers/net/ethernet/marvell/mvneta.c+3 -40 replies
6/7net: mvneta: make tx buffer array agnosticdrivers/net/ethernet/marvell/mvneta.c+43 -230 replies
7/7net: mvneta: add XDP_TX supportdrivers/net/ethernet/marvell/mvneta.c+121 -70 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by of their own; the series has one for all of them.

PatchMatteo CroceJakub Kicinski
SeriesR-b
1/7
2/7
3/7
4/7T-b
5/7
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v5 thread

Cover letter [PATCH v5 net-next 0/7] add XDP support to mvneta driver

Add XDP support to mvneta driver for devices that rely on software buffer management. Supported verdicts are:
- XDP_DROP
- XDP_PASS
- XDP_REDIRECT
- XDP_TX
Moreover set ndo_xdp_xmit net_device_ops function pointer in order to support redirecting from other device (e.g. virtio-net). Convert mvneta driver to page_pool API.
This series is based on previous work done by Jesper and Ilias. We will send follow-up patches to reduce DMA-sync operations.

Changes since v4:
- reset page_pool pointer to NULL in mvneta_rxq_drop_pkts and in mvneta_create_page_pool error path
- move dma sync in mvneta_rx_refill() in patch 2/7
- verify bpf prog pointer in mvneta_xdp_setup to double-check if stop/start is really necessary
- coding style fixes

Changes since v3:
- rename MVNETA_XDP_CONSUMED in MVNETA_XDP_DROPPED
- squash patch 4/8 and patch 3/8
- fix dma sync for XDP_TX verdict
- fix queue_index in xdp_rxq_info_reg
- cosmetics

Changes since v2:
- rely on page_pool_recycle_direct instead of xdp_return_buff for XDP_DROP
- define xdp buffer in mvneta_rx_swbm and avoid default initializations
- use dma_sync_single_for_cpu instead of dma_sync_single_range_for_cpu
- run page_pool_release_page in mvneta_swbm_add_rx_fragment even if the buffer contains just ETH_FCS

Changes since v1:
- sync dma buffers before refilling hw queues
- fix stats accounting

Changes since RFC:
- implement XDP_TX
- make tx pending buffer list agnostic
- code refactoring
- check if device is running in mvneta_xdp_setup

Lorenzo Bianconi (7):
net: mvneta: introduce mvneta_update_stats routine
net: mvneta: introduce page pool API for sw buffer manager
net: mvneta: rely on build_skb in mvneta_rx_swbm poll routine
net: mvneta: add basic XDP support
net: mvneta: move header prefetch in mvneta_swbm_rx_frame
net: mvneta: make tx buffer array agnostic
net: mvneta: add XDP_TX support

 drivers/net/ethernet/marvell/Kconfig  |   1 +
 drivers/net/ethernet/marvell/mvneta.c | 618 +++++++++++++++++++-------
 2 files changed, 470 insertions(+), 149 deletions(-)
Signature · 1 line
2.21.0