On Thu, 18 Jun 2026 10:44:35 -0400
Dawid Wesierski <[email protected]> wrote:

> From: Marek Kasiewicz <[email protected]>
> 
> This series introduces several improvements to Intel iavf and ice
> drivers, including a new ethdev API for header split mbuf callbacks,
> increased ring descriptors, and improved PTP timestamping.
> 
> Marek Kasiewicz (7):
>   ethdev: add header split mbuf callback API
>   net/iavf: increase max ring descriptors to hardware limit
>   net/iavf: allow runtime queue rate limit configuration
>   net/ice/base: reduce default scheduler burst size
>   net/ice: timestamp all received packets when PTP is enabled
>   net/iavf: disable runtime queue setup capability
>   net/intel: support header split mbuf callback
> 
>  drivers/net/intel/common/rx.h         |  2 +
>  drivers/net/intel/iavf/iavf_ethdev.c  |  3 --
>  drivers/net/intel/iavf/iavf_rxtx.h    |  2 +-
>  drivers/net/intel/iavf/iavf_tm.c      | 11 ++--
>  drivers/net/intel/ice/base/ice_type.h |  2 +-
>  drivers/net/intel/ice/ice_ethdev.c    |  1 +
>  drivers/net/intel/ice/ice_rxtx.c      | 72 ++++++++++++++++++++++++---
>  drivers/net/intel/ice/ice_rxtx.h      |  2 +
>  lib/ethdev/ethdev_driver.h            | 15 +++++++
>  lib/ethdev/rte_ethdev.c               | 51 ++++++++++++++++++++++
>  lib/ethdev/rte_ethdev.h               |  7 +++
>  11 files changed, 153 insertions(+), 15 deletions(-)
> 

This looks interesting but I don't understand the motivation
or use case for the new code. There is no documentation, examples
or test integration.  At this point the patch is in pure RFC state.

More wordy answer from AI...

Documentation and motivation

This adds a new public ethdev RX mechanism but ships no prose
rationale, no documentation, and no worked example. For a new API
the series needs to make the case before the code can be evaluated.

Missing documentation:

- No prog_guide section. A new RX model -- header split where the
  application supplies the payload buffer -- needs a write-up (e.g.
  in doc/guides/prog_guide) covering the buffer-lifetime contract,
  the IOVA/headroom semantics, which offloads must be enabled
  (RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT), and what happens on a PMD that
  does not implement the hook.

- No example or testpmd integration. There is no end-to-end flow a
  reviewer can read or run: register the callback, supply buffers,
  receive, consume, recycle. Without one there is no demonstrated
  use case and no way to validate the design (the mempool-corruption
  and headroom issues in 7/7 would likely have surfaced in a working
  example).

Missing motivation:

- The actual use case is not named. "Zero-copy RX into mapped frame
  buffers with known IOVA" describes a mechanism, not a user. Who
  needs this -- an AF_XDP-style external umem, a GPU/DMA target
  (gpudev), something else? State it.

- The benefit is unquantified. The claim is avoiding "an extra
  memcpy from the mempool mbuf," but the patch replaces that with a
  per-allocation indirect callback on the Rx fast path
  (ice_recv_pkts, ice_rx_alloc_bufs). The rationale should show the
  memcpy actually exists in the path being optimized and that the
  indirect call per buffer is a net win.

- It does not explain why existing mechanisms are insufficient. DPDK
  already lets an application own payload memory via
  rte_pktmbuf_attach_extbuf() and via external-buffer mempools
  (pinned external memory passed to the Rx mempool). The series must
  argue why a new callback API is needed instead of those -- this is
  the same alternative raised against the 7/7 implementation, so the
  motivation and the correctness fix point at the same question.

- Constraints are undocumented: PMD support scope, fast-path
  threading and reentrancy of the callback, and interaction with the
  buffer-split configuration.

Until there is a documented model and at least one example showing
the buffer lifecycle, it is hard to tell whether the callback API is
the right shape -- or whether attach_extbuf / an external-mempool
already covers the use case.

Reply via email to