Thread (27 messages) 27 messages, 6 authors, 2022-01-29

Re: [PATCH v4 net-next 1/9] i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb

flat view

From: Jesper Dangaard Brouer <hidden>
Date: 2021-12-10 13:31:55
Also in: bpf, intel-wired-lan, lkml


On 09/12/2021 18.33, Alexander Lobakin wrote:
From: Jesper Dangaard Brouer <redacted>
Date: Thu, 9 Dec 2021 09:19:46 +0100
quoted
On 08/12/2021 15.06, Alexander Lobakin wrote:
quoted
{__,}napi_alloc_skb() allocates and reserves additional NET_SKB_PAD
+ NET_IP_ALIGN for any skb.
OTOH, i40e_construct_skb_zc() currently allocates and reserves
additional `xdp->data - xdp->data_hard_start`, which is
XDP_PACKET_HEADROOM for XSK frames.
There's no need for that at all as the frame is post-XDP and will
go only to the networking stack core.
I disagree with this assumption, that headroom is not needed by netstack.
Why "no need for that at all" for netstack?
napi_alloc_skb() in our particular case will reserve 64 bytes, it is
sufficient for {TCP,UDP,SCTP,...}/IPv{4,6} etc.
My bad, I misunderstood you. I now see (looking at code) that (as you say) 64 bytes of headroom *is* reserved (in bottom of __napi_alloc_skb).
Thus, the SKB *do* have headroom, so this patch should be fine.

Acked-by: Jesper Dangaard Brouer <redacted>

Do watch out that 64 bytes is not always enough. Notice the define LL_MAX_HEADER and MAX_HEADER in include/linux/netdevice.h (that tries to determine worst-case header length) which is above 64 bytes. It is also affected by HyperV and WiFi configs.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help