
Intel listed total 28 commits that need us to back port. There are 9 commits that are already included in our code base. The commit "ice: Add support for E825-C TS PLL handling" will not be back ported since we're not dealing with E825 for 24.09. So we need back port 18 commits. These commits were introduced in linux-6.9.y and linux-6.10.y. To back port these 18 commits successfully, we totally back ported 37 upstream commits. 1) The patches 1-15 are cherry picked to fix the conflicts for patch 16 ("ice: introduce PTP state machine") and patch 36 "ice: Introduce ice_ptp_hw struct". Also will be helpful for the subsequent commits back porting. 2) The patches 24-27 are cherry picked to fix the conflicts for patch 28 ("ice: Fix debugfs with devlink reload") 3) The minor adjust was done for the patches 17, 21, 23 and 33 to fit with the context change. Verification: - installs from iso succeed on servers with ice(Intel Ethernet Controller E810-XXVDA4T Westport Channel) and i40e hw(Intel Ethernet Controller X710) for rt and std. - interfaces are up and pass packets for rt and std. - create vfs, ensure that they are picked up by the new iavf driver and that the interface can come up and pass packets on rt and std system. - Check dmesg to see DDP package is loaded successfully and the version is 1.3.36.0 for rt and std. Story: 2011056 Task: 50950 Change-Id: I9aef0378ea01451684341093a167eaead3edc458 Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
98 lines
3.8 KiB
Diff
98 lines
3.8 KiB
Diff
From 7dae9333af82f6c9e2db1940c3a10ae38dabea7b Mon Sep 17 00:00:00 2001
|
|
From: Jacob Keller <jacob.e.keller@intel.com>
|
|
Date: Tue, 21 Nov 2023 13:12:55 -0800
|
|
Subject: [PATCH 07/36] ice: remove ptp_tx ring parameter flag
|
|
|
|
Before performing a Tx timestamp in ice_stamp(), the driver checks a ptp_tx
|
|
ring variable to see if timestamping is enabled on that ring. This value is
|
|
set for all rings whenever userspace configures Tx timestamping.
|
|
|
|
Ostensibly this was done to avoid wasting cycles checking other fields when
|
|
timestamping has not been enabled. However, for Tx timestamps we already
|
|
get an individual per-SKB flag indicating whether userspace wants to
|
|
request a timestamp on that packet. We do not gain much by also having
|
|
a separate flag to check for whether timestamping was enabled.
|
|
|
|
In fact, the driver currently fails to restore the field after a PF reset.
|
|
Because of this, if a PF reset occurs, timestamps will be disabled.
|
|
|
|
Since this flag doesn't add value in the hotpath, remove it and always
|
|
provide a timestamp if the SKB flag has been set.
|
|
|
|
A following change will fix the reset path to properly restore user
|
|
timestamping configuration completely.
|
|
|
|
This went unnoticed for some time because one of the most common
|
|
applications using Tx timestamps, ptp4l, will reconfigure the socket as
|
|
part of its fault recovery logic.
|
|
|
|
Fixes: ea9b847cda64 ("ice: enable transmit timestamps for E810 devices")
|
|
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
|
|
Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
|
|
Reviewed-by: Simon Horman <horms@kernel.org>
|
|
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
|
|
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
|
|
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
|
(cherry picked from commit 0ffb08b1a45bd6b7694e01da0e1d9e3e788418fb)
|
|
Signed-off-by: Jiping Ma <jiping.ma2@windriver.com>
|
|
---
|
|
drivers/net/ethernet/intel/ice/ice_ptp.c | 14 --------------
|
|
drivers/net/ethernet/intel/ice/ice_txrx.c | 3 ---
|
|
drivers/net/ethernet/intel/ice/ice_txrx.h | 1 -
|
|
3 files changed, 18 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
index 0d6c7215e0c1..c03153bdb7c3 100644
|
|
--- a/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
+++ b/drivers/net/ethernet/intel/ice/ice_ptp.c
|
|
@@ -280,20 +280,6 @@ static void ice_ptp_configure_tx_tstamp(struct ice_pf *pf, bool on)
|
|
*/
|
|
static void ice_set_tx_tstamp(struct ice_pf *pf, bool on)
|
|
{
|
|
- struct ice_vsi *vsi;
|
|
- u16 i;
|
|
-
|
|
- vsi = ice_get_main_vsi(pf);
|
|
- if (!vsi)
|
|
- return;
|
|
-
|
|
- /* Set the timestamp enable flag for all the Tx rings */
|
|
- ice_for_each_txq(vsi, i) {
|
|
- if (!vsi->tx_rings[i])
|
|
- continue;
|
|
- vsi->tx_rings[i]->ptp_tx = on;
|
|
- }
|
|
-
|
|
if (pf->ptp.tx_interrupt_mode == ICE_PTP_TX_INTERRUPT_SELF)
|
|
ice_ptp_configure_tx_tstamp(pf, on);
|
|
|
|
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.c b/drivers/net/ethernet/intel/ice/ice_txrx.c
|
|
index 24c914015973..9170a3e8f088 100644
|
|
--- a/drivers/net/ethernet/intel/ice/ice_txrx.c
|
|
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.c
|
|
@@ -2305,9 +2305,6 @@ ice_tstamp(struct ice_tx_ring *tx_ring, struct sk_buff *skb,
|
|
if (likely(!(skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP)))
|
|
return;
|
|
|
|
- if (!tx_ring->ptp_tx)
|
|
- return;
|
|
-
|
|
/* Tx timestamps cannot be sampled when doing TSO */
|
|
if (first->tx_flags & ICE_TX_FLAGS_TSO)
|
|
return;
|
|
diff --git a/drivers/net/ethernet/intel/ice/ice_txrx.h b/drivers/net/ethernet/intel/ice/ice_txrx.h
|
|
index 407d4c320097..b28b9826bbcd 100644
|
|
--- a/drivers/net/ethernet/intel/ice/ice_txrx.h
|
|
+++ b/drivers/net/ethernet/intel/ice/ice_txrx.h
|
|
@@ -381,7 +381,6 @@ struct ice_tx_ring {
|
|
#define ICE_TX_FLAGS_RING_VLAN_L2TAG2 BIT(2)
|
|
u8 flags;
|
|
u8 dcb_tc; /* Traffic class of ring */
|
|
- u8 ptp_tx;
|
|
} ____cacheline_internodealigned_in_smp;
|
|
|
|
static inline bool ice_ring_uses_build_skb(struct ice_rx_ring *ring)
|
|
--
|
|
2.43.0
|
|
|