[Intel-wired-lan] [PATCH iwl-next 0/3] iavf: defer loading netmem_desc
Matt Vollrath
tactii at gmail.com
Fri Jul 31 12:41:06 UTC 2026
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
More information about the Intel-wired-lan
mailing list