[Intel-wired-lan] [PATCH iwl-next 0/3] iavf: defer loading netmem_desc
Matt Vollrath <[email protected]> Fri, 31 Jul 2026 08:41:06 -0400
| Newsgroups | org.osuosl.intel-wired-lan,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
In a few places libeth and the iavf driver inspect which page pool is attached to a netmem_ref. This forces an immediate load of the netmem_desc struct for each buffer in the Rx loop. Defer or eliminate these loads of netmem_desc from the driver fast path by using the page_pool ref in the first cache line of iavf_ring instead. There are only two paths out of the Rx loop where netmem_desc needs to be consumed: * The "very rare" case of libeth_rx_sync_for_cpu calling libeth_rx_recycle_slow and indicating that there was no data. This could be similarly factored out, but not by this series. * GRO merging a frame into an existing aggregate stream. In this case, the cold load of netmem_desc may overlap the payload prefetch started by iavf_build_skb, which is now no longer dependent on netmem_desc to start. Matt Vollrath (3): libeth: add __libeth_rx_sync_for_cpu iavf: use __libeth_rx_sync_for_cpu iavf: use cached page_pool ref in skb helpers drivers/net/ethernet/intel/iavf/iavf_txrx.c | 18 ++++++---- include/net/libeth/rx.h | 37 +++++++++++++++------ 2 files changed, 37 insertions(+), 18 deletions(-) base-commit: 5c458073553f0ef74f5c8db1bd459c87c722a299 -- 2.43.0