[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ccd27f5f-31c4-603f-ea36-ad32b16325b9@redhat.com>
Date: Fri, 10 Dec 2021 14:31:45 +0100
From: Jesper Dangaard Brouer <jbrouer@...hat.com>
To: Alexander Lobakin <alexandr.lobakin@...el.com>,
Jesper Dangaard Brouer <jbrouer@...hat.com>
Cc: brouer@...hat.com, intel-wired-lan@...ts.osuosl.org,
Jesse Brandeburg <jesse.brandeburg@...el.com>,
Tony Nguyen <anthony.l.nguyen@...el.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Jesper Dangaard Brouer <hawk@...nel.org>,
John Fastabend <john.fastabend@...il.com>,
Björn Töpel <bjorn@...nel.org>,
Maciej Fijalkowski <maciej.fijalkowski@...el.com>,
Michal Swiatkowski <michal.swiatkowski@...ux.intel.com>,
Jithu Joseph <jithu.joseph@...el.com>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>,
KP Singh <kpsingh@...nel.org>, Yonghong Song <yhs@...com>,
Andrii Nakryiko <andrii@...nel.org>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org, bpf@...r.kernel.org
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@...hat.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@...hat.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.
Powered by blists - more mailing lists