[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <IA3PR11MB89861D8E27A130819515F00DE5FBA@IA3PR11MB8986.namprd11.prod.outlook.com>
Date: Thu, 30 Oct 2025 08:46:03 +0000
From: "Loktionov, Aleksandr" <aleksandr.loktionov@...el.com>
To: "Lobakin, Aleksander" <aleksander.lobakin@...el.com>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "Lobakin, Aleksander" <aleksander.lobakin@...el.com>, "Nguyen, Anthony L"
<anthony.l.nguyen@...el.com>, "Kitszel, Przemyslaw"
<przemyslaw.kitszel@...el.com>, Andrew Lunn <andrew+netdev@...n.ch>, "David
S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, "Jakub
Kicinski" <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Simon Horman
<horms@...nel.org>, NXNE CNSE OSDT ITP Upstreaming
<nxne.cnse.osdt.itp.upstreaming@...el.com>, "netdev@...r.kernel.org"
<netdev@...r.kernel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
Subject: RE: [Intel-wired-lan] [PATCH iwl-next] ice: implement configurable
header split for regular Rx
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf
> Of Alexander Lobakin
> Sent: Monday, October 6, 2025 6:21 PM
> To: intel-wired-lan@...ts.osuosl.org
> Cc: Lobakin, Aleksander <aleksander.lobakin@...el.com>; Nguyen,
> Anthony L <anthony.l.nguyen@...el.com>; Kitszel, Przemyslaw
> <przemyslaw.kitszel@...el.com>; Andrew Lunn <andrew+netdev@...n.ch>;
> David S. Miller <davem@...emloft.net>; Eric Dumazet
> <edumazet@...gle.com>; Jakub Kicinski <kuba@...nel.org>; Paolo Abeni
> <pabeni@...hat.com>; Simon Horman <horms@...nel.org>; NXNE CNSE OSDT
> ITP Upstreaming <nxne.cnse.osdt.itp.upstreaming@...el.com>;
> netdev@...r.kernel.org; linux-kernel@...r.kernel.org
> Subject: [Intel-wired-lan] [PATCH iwl-next] ice: implement
> configurable header split for regular Rx
>
> Add second page_pool for header buffers to each Rx queue and ability
> to toggle the header split on/off using Ethtool (default to off to
> match the current behaviour).
> Unlike idpf, all HW backed up by ice doesn't require any W/As and
> correctly splits all types of packets as configured: after L4 headers
> for TCP/UDP/SCTP, after L3 headers for other IPv4/IPv6 frames, after
> the Ethernet header otherwise (in case of tunneling, same as above,
> but after innermost headers).
> This doesn't affect the XSk path as there are no benefits of having it
> there.
>
> Signed-off-by: Alexander Lobakin <aleksander.lobakin@...el.com>
> ---
> Applies on top of Tony's next-queue, depends on MichaĆ's Page Pool
> conversion series.
>
> Sending for review and validation purposes.
>
> Testing hints: traffic testing with and without header split enabled.
> The header split can be turned on/off using Ethtool:
>
> sudo ethtool -G <iface> tcp-data-split on (or off)
> ---
> drivers/net/ethernet/intel/ice/ice.h | 1 +
> .../net/ethernet/intel/ice/ice_lan_tx_rx.h | 3 +
> drivers/net/ethernet/intel/ice/ice_txrx.h | 7 ++
> drivers/net/ethernet/intel/ice/ice_base.c | 89 +++++++++++++++---
> -
> drivers/net/ethernet/intel/ice/ice_ethtool.c | 15 +++-
> drivers/net/ethernet/intel/ice/ice_txrx.c | 89 +++++++++++++++---
> -
> 6 files changed, 168 insertions(+), 36 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/ice/ice.h
> b/drivers/net/ethernet/intel/ice/ice.h
> index d46ff9c97c86..bef3d6d8d491 100644
> --- a/drivers/net/ethernet/intel/ice/ice.h
> +++ b/drivers/net/ethernet/intel/ice/ice.h
> @@ -351,6 +351,7 @@ struct ice_vsi {
> u16 num_q_vectors;
> /* tell if only dynamic irq allocation is allowed */
> bool irq_dyn_alloc;
> + bool hsplit:1;
...
> --
> 2.51.0
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
Powered by blists - more mailing lists