On Tue, Oct 27, 2026 at 4:49 PM Jakub Kicinski [off-list ref] wrote:
Note the odd split of ownership here: rx_skb_func() only deals with
the head buffer, the agg buffers stay with the caller in whatever
state they are in, still on the ring without XDP, or frags of the
xdp_buff with XDP. This complicates rx_skb_func() cleaning up all
the buffers (head and frags), which would be more intuitive.
Yeah, rx_skb_func() only deals with the head buffer and it needs 7
function parameters already. Letting it handle agg bufs would make it
more complicated.
I also double checked the TPA code path (copybreak and non-copybreak)
and it doesn't have this issue of leaking agg buffers during OOM.
Thanks for the patches. I will review the whole set more thoroughly tomorrow.