Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Alexander Lobakin <alexandr.lobakin@intel.com>
To: intel-wired-lan@lists.osuosl.org
Cc: "Alexander Lobakin" <alexandr.lobakin@intel.com>,
"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
"Tony Nguyen" <anthony.l.nguyen@intel.com>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"John Fastabend" <john.fastabend@gmail.com>,
"Björn Töpel" <bjorn@kernel.org>,
"Maciej Fijalkowski" <maciej.fijalkowski@intel.com>,
"Michal Swiatkowski" <michal.swiatkowski@linux.intel.com>,
"Jithu Joseph" <jithu.joseph@intel.com>,
"Martin KaFai Lau" <kafai@fb.com>,
"Song Liu" <songliubraving@fb.com>,
"KP Singh" <kpsingh@kernel.org>, "Yonghong Song" <yhs@fb.com>,
"Andrii Nakryiko" <andrii@kernel.org>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
bpf@vger.kernel.org
Subject: [PATCH v4 net-next 0/9] net: intel: napi_alloc_skb() vs metadata
Date: Wed, 8 Dec 2021 15:06:53 +0100 [thread overview]
Message-ID: <20211208140702.642741-1-alexandr.lobakin@intel.com> (raw)
This is an interpolation of [0] to other Intel Ethernet drivers
(and is (re)based on its code).
The main aim is to keep XDP metadata not only in case with
build_skb(), but also when we do napi_alloc_skb() + memcpy().
All Intel drivers suffers from the same here:
- metadata gets lost on XDP_PASS in legacy-rx;
- excessive headroom allocation on XSK Rx to skbs;
- metadata gets lost on XSK Rx to skbs.
Those get especially actual in XDP Hints upcoming.
I couldn't have addressed the first one for all Intel drivers due to
that they don't reserve any headroom for now in legacy-rx mode even
with XDP enabled. This is hugely wrong, but requires quite a bunch
of work and a separate series. Luckily, ice doesn't suffer from
that.
igc has 1 and 3 already fixed in [0].
From v3 ([1]):
- fix driver name and ixgbe_construct_skb() function name in the
commit message of #9 (Jesper);
- no functional changes.
From v2 (unreleased upstream):
- tweaked 007 to pass bi->xdp directly and simplify code (Maciej);
- picked Michal's Reviewed-by.
From v1 (unreleased upstream):
- drop "fixes" of legacy-rx for i40e, igb and ixgbe since they have
another flaw regarding headroom (see above);
- drop igc cosmetic fixes since they landed upstream incorporated
into Jesper's commits;
- picked one Acked-by from Maciej.
[0] https://lore.kernel.org/netdev/163700856423.565980.10162564921347693758.stgit@firesoul
[1] https://lore.kernel.org/netdev/20211207205536.563550-1-alexandr.lobakin@intel.com
Alexander Lobakin (9):
i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
i40e: respect metadata on XSK Rx to skb
ice: respect metadata in legacy-rx/ice_construct_skb()
ice: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
ice: respect metadata on XSK Rx to skb
igc: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
ixgbe: pass bi->xdp to ixgbe_construct_skb_zc() directly
ixgbe: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
ixgbe: respect metadata on XSK Rx to skb
drivers/net/ethernet/intel/i40e/i40e_xsk.c | 16 +++++++-----
drivers/net/ethernet/intel/ice/ice_txrx.c | 15 ++++++++---
drivers/net/ethernet/intel/ice/ice_xsk.c | 16 +++++++-----
drivers/net/ethernet/intel/igc/igc_main.c | 13 +++++-----
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 27 ++++++++++++--------
5 files changed, 54 insertions(+), 33 deletions(-)
--
Testing hints:
Setup an XDP and AF_XDP program which will prepend metadata at the
front of the frames and return XDP_PASS, then check that metadata
is present after frames reach kernel network stack.
--
2.33.1
next reply other threads:[~2021-12-08 14:07 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-08 14:06 Alexander Lobakin [this message]
2021-12-08 14:06 ` [PATCH v4 net-next 1/9] i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb Alexander Lobakin
2021-12-09 8:19 ` Jesper Dangaard Brouer
2021-12-09 17:33 ` Alexander Lobakin
2021-12-10 13:31 ` Jesper Dangaard Brouer
2022-01-29 8:55 ` [Intel-wired-lan] " Bhandare, KiranX
2021-12-08 14:06 ` [PATCH v4 net-next 2/9] i40e: respect metadata " Alexander Lobakin
2021-12-09 8:27 ` Jesper Dangaard Brouer
2021-12-09 17:38 ` Alexander Lobakin
2021-12-09 18:50 ` Nguyen, Anthony L
2021-12-10 11:08 ` Alexander Lobakin
2022-01-10 11:24 ` [Intel-wired-lan] " Bhandare, KiranX
2021-12-08 14:06 ` [PATCH v4 net-next 3/9] ice: respect metadata in legacy-rx/ice_construct_skb() Alexander Lobakin
2022-01-10 10:16 ` [Intel-wired-lan] " Bhandare, KiranX
2021-12-08 14:06 ` [PATCH v4 net-next 4/9] ice: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb Alexander Lobakin
2022-01-10 10:13 ` [Intel-wired-lan] " Bhandare, KiranX
2021-12-08 14:06 ` [PATCH v4 net-next 5/9] ice: respect metadata " Alexander Lobakin
2022-01-10 11:37 ` [Intel-wired-lan] " Bhandare, KiranX
2021-12-08 14:06 ` [PATCH v4 net-next 6/9] igc: don't reserve excessive XDP_PACKET_HEADROOM " Alexander Lobakin
2021-12-27 20:34 ` [Intel-wired-lan] " Kraus, NechamaX
2021-12-08 14:07 ` [PATCH v4 net-next 7/9] ixgbe: pass bi->xdp to ixgbe_construct_skb_zc() directly Alexander Lobakin
2022-01-11 7:30 ` [Intel-wired-lan] " Penigalapati, Sandeep
2021-12-08 14:07 ` [PATCH v4 net-next 8/9] ixgbe: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb Alexander Lobakin
2022-01-11 11:51 ` [Intel-wired-lan] " Penigalapati, Sandeep
2021-12-08 14:07 ` [PATCH v4 net-next 9/9] ixgbe: respect metadata " Alexander Lobakin
2022-01-11 11:52 ` [Intel-wired-lan] " Penigalapati, Sandeep
2022-01-10 10:11 ` [Intel-wired-lan] [PATCH v4 net-next 0/9] net: intel: napi_alloc_skb() vs metadata Bhandare, KiranX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211208140702.642741-1-alexandr.lobakin@intel.com \
--to=alexandr.lobakin@intel.com \
--cc=andrii@kernel.org \
--cc=anthony.l.nguyen@intel.com \
--cc=ast@kernel.org \
--cc=bjorn@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=hawk@kernel.org \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jesse.brandeburg@intel.com \
--cc=jithu.joseph@intel.com \
--cc=john.fastabend@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maciej.fijalkowski@intel.com \
--cc=michal.swiatkowski@linux.intel.com \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=yhs@fb.com \
--subject='Re: [PATCH v4 net-next 0/9] net: intel: napi_alloc_skb() vs metadata' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).