Messages in this thread | | | From | Jesper Dangaard Brouer <> | Date | Fri, 10 Dec 2021 14:31:45 +0100 | Subject | Re: [PATCH v4 net-next 1/9] i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb |
| |
On 09/12/2021 18.33, Alexander Lobakin wrote: > From: Jesper Dangaard Brouer <jbrouer@redhat.com> > Date: Thu, 9 Dec 2021 09:19:46 +0100 > >> On 08/12/2021 15.06, Alexander Lobakin wrote: >>> {__,}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 <brouer@redhat.com>
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.
| |