From: Scott <[email protected]>

This series addresses correctness issues and adds performance
optimizations to the AF_PACKET driver, laying the groundwork for
upcoming advanced features.

The series is structured as:

Patch 1/3: Thread safety and frame calculation fixes
  - Critical correctness fixes for multi-threaded environments
  - Proper atomic operations and memory ordering for tp_status
  - Fixes frame address calculation bugs

Patch 2/3: Performance optimizations
  - Use rte_memcpy() for better performance
  - Add prefetching for next frame/mbuf
  - Use rte_pktmbuf_free_bulk() instead of individual frees

Patch 3/3: New features and device arguments
  - Software checksum offload support
  - TX poll behavior control (txpollnotrdy devarg)
  - Improved devarg validation

These changes prepare the driver for planned follow-up patches that will
add significant new capabilities:

- io_uring SQPOLL support for TX send notify, which meaningfully improves
  performance by eliminating syscall overhead and enabling kernel-side
  polling

- GRO/GSO support via PACKET_VNET_HDR to aggregate packets and reduce
  per-packet interface traversal overhead

- TPACKET_V3 protocol support for block-based RX/TX processing, providing
  packet batching benefits and reducing cache pressure

The correctness fixes in patch 1/3 are particularly important for these
future features, as io_uring SQPOLL mode involves asynchronous kernel
updates to tp_status from independent CPU cores, requiring proper memory
ordering.

Scott Mitchell (3):
  net/af_packet: fix thread safety and frame calculations
  net/af_packet: RX/TX rte_memcpy, bulk free, prefetch
  net/af_packet: software checksum and tx poll control

 drivers/net/af_packet/rte_eth_af_packet.c | 389 +++++++++++++++-------
 1 file changed, 270 insertions(+), 119 deletions(-)

--
2.39.5 (Apple Git-154)

Reply via email to