[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <IA1PR11MB62413C2A016858E5524AEBF58B97A@IA1PR11MB6241.namprd11.prod.outlook.com>
Date: Mon, 12 May 2025 07:33:02 +0000
From: "Rinitha, SX" <sx.rinitha@...el.com>
To: "Greenwalt, Paul" <paul.greenwalt@...el.com>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, "Greenwalt, Paul"
<paul.greenwalt@...el.com>, "Loktionov, Aleksandr"
<aleksandr.loktionov@...el.com>
Subject: RE: [Intel-wired-lan] [PATCH iwl-next v3] ice: add E830 Earliest
TxTime First Offload support
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of Paul Greenwalt
> Sent: 13 March 2025 19:16
> To: intel-wired-lan@...ts.osuosl.org
> Cc: netdev@...r.kernel.org; Greenwalt, Paul <paul.greenwalt@...el.com>; Loktionov, Aleksandr <aleksandr.loktionov@...el.com>
> Subject: [Intel-wired-lan] [PATCH iwl-next v3] ice: add E830 Earliest TxTime First Offload support
>
> E830 supports Earliest TxTime First (ETF) hardware offload, which is configured via the ETF Qdisc (see tc-etf(8)). ETF introduces a new Tx flow mechanism that utilizes a timestamp ring (tstamp_ring) alongside the standard Tx ring. This timestamp ring is used to indicate when hardware will transmit a packet.
>
> The allocation and initialization of the timestamp ring occur when the feature is enabled via tc-etf. Since the timestamp ring and Tx ring are tightly coupled, both must be configured simultaneously.
>
> To support ETF, the following flags are introduced:
>
> - ICE_F_TXTIME: Device feature flag set for E830 NICs, indicating ETF
support.
> - ICE_FLAG_TXTIME: PF-level flag indicating whether ETF is enabled on any
Tx queue. It is checked during ring allocation to determine if timestamp
rings should be allocated and is also referenced when modifying queue
count via ethtool -G.
> - ICE_TX_FLAGS_TXTIME: Per-ring flag set when ETF is enabled and cleared
when disabled for a specific Tx queue. It helps determine ETF status
when transmitting timestamped packets and is used by ice_is_txtime_ena()
to check if ETF is enabled on any Tx queue.
>
> Due to a hardware issue that can result in a malicious driver detection event, additional timestamp descriptors are required when wrapping the timestamp ring. Up to 64 additional timestamp descriptors are reserved, reducing the available Tx descriptors.
>
> To accommodate this, ICE_MAX_NUM_DESC_BY_MAC is introduced, defining:
>
> - E830: Maximum Tx descriptor length of 8096 (8K - 32 - 64 for timestamp
fetch descriptors).
> - E810 and E82X: Maximum Tx descriptor length of 8160 (8K - 32) .
>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> Co-developed-by: Alice Michael <alice.michael@...el.com>
> Signed-off-by: Alice Michael <alice.michael@...el.com>
> Signed-off-by: Paul Greenwalt <paul.greenwalt@...el.com>
> ---
> Changelog:
> v2->v3:
> - Fix const compiler warning.
> - Fix spelling error in function header.
> - Fix Changelog verions number.
> v1->v2:
> - Resolve patch apply isue.
> - Fixes RCT, zero struct initialization, move bailout condition to top
of function, removed unnecessary newlines, and added use of
str_enable_disable.
> v1: https://patchwork.ozlabs.org/project/intel-wired-lan/patch/20250227111333.30675-1-paul.greenwalt@intel.com/
> ---
> drivers/net/ethernet/intel/ice/ice.h | 9 +-
> .../net/ethernet/intel/ice/ice_adminq_cmd.h | 53 +++++
> drivers/net/ethernet/intel/ice/ice_base.c | 212 +++++++++++++++---
> drivers/net/ethernet/intel/ice/ice_base.h | 1 +
> drivers/net/ethernet/intel/ice/ice_common.c | 118 ++++++++++
> drivers/net/ethernet/intel/ice/ice_common.h | 10 +
> drivers/net/ethernet/intel/ice/ice_ethtool.c | 61 ++++-
> .../net/ethernet/intel/ice/ice_hw_autogen.h | 3 +
> .../net/ethernet/intel/ice/ice_lan_tx_rx.h | 42 ++++
> drivers/net/ethernet/intel/ice/ice_lib.c | 45 +++-
> drivers/net/ethernet/intel/ice/ice_main.c | 174 +++++++++++++-
> drivers/net/ethernet/intel/ice/ice_txrx.c | 129 ++++++++++-
> drivers/net/ethernet/intel/ice/ice_txrx.h | 4 +
> drivers/net/ethernet/intel/ice/ice_txrx_lib.h | 14 ++
> drivers/net/ethernet/intel/ice/ice_virtchnl.c | 2 +-
> 15 files changed, 823 insertions(+), 54 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@...el.com> (A Contingent worker at Intel)
Powered by blists - more mailing lists