> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Jacob Keller > Sent: Friday, September 12, 2025 1:41 AM > To: Brandeburg, Jesse <[email protected]>; Jakub Kicinski > <[email protected]>; Hariprasad Kelam <[email protected]>; Simon Horman > <[email protected]>; Marcin Szycik <[email protected]>; > Rahul Rameshbabu <[email protected]>; [email protected]; > [email protected]; [email protected]; > [email protected]; Keller, Jacob E <[email protected]> > Cc: Jesse Brandeburg <[email protected]> > Subject: [Intel-wired-lan] [PATCH v3 3/5] ice: add tracking of good > transmit timestamps > > From: Jesse Brandeburg <[email protected]> > > As a pre-requisite to implementing timestamp statistics, start > tracking successful PTP timestamps. There already existed a trace > event, but add a counter as well so it can be displayed by the next > patch. > > Good count is a u64 as it is much more likely to be incremented. The > existing error stats are all u32 as before, and are less likely so > will wrap less. > > Reviewed-by: Jacob Keller <[email protected]> > Reviewed-by: Jakub Kicinski <[email protected]> > Reviewed-by: Simon Horman <[email protected]> > Signed-off-by: Jesse Brandeburg <[email protected]> > Signed-off-by: Jacob Keller <[email protected]> > --- > drivers/net/ethernet/intel/ice/ice_ptp.h | 2 ++ > drivers/net/ethernet/intel/ice/ice_ptp.c | 9 +++++++++ > 2 files changed, 11 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.h > b/drivers/net/ethernet/intel/ice/ice_ptp.h > index 137f2070a2d9..27016aac4f1e 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ptp.h > +++ b/drivers/net/ethernet/intel/ice/ice_ptp.h > @@ -237,6 +237,7 @@ struct ice_ptp_pin_desc { > * @clock: pointer to registered PTP clock device > * @tstamp_config: hardware timestamping configuration > * @reset_time: kernel time after clock stop on reset > + * @tx_hwtstamp_good: number of completed Tx timestamp requests > * @tx_hwtstamp_skipped: number of Tx time stamp requests skipped > * @tx_hwtstamp_timeouts: number of Tx skbs discarded with no time > stamp > * @tx_hwtstamp_flushed: number of Tx skbs flushed due to interface > closed @@ -261,6 +262,7 @@ struct ice_ptp { > struct ptp_clock *clock; > struct kernel_hwtstamp_config tstamp_config; > u64 reset_time; > + u64 tx_hwtstamp_good; > u32 tx_hwtstamp_skipped; > u32 tx_hwtstamp_timeouts; > u32 tx_hwtstamp_flushed; > diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c > b/drivers/net/ethernet/intel/ice/ice_ptp.c > index 9b065709c899..d2ca9d7bcfc1 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ptp.c > +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c > @@ -500,6 +500,9 @@ void ice_ptp_complete_tx_single_tstamp(struct > ice_ptp_tx *tx) > if (tstamp) { > shhwtstamps.hwtstamp = ns_to_ktime(tstamp); > ice_trace(tx_tstamp_complete, skb, idx); > + > + /* Count the number of Tx timestamps that succeeded */ > + pf->ptp.tx_hwtstamp_good++; > } > > skb_tstamp_tx(skb, &shhwtstamps); > @@ -558,6 +561,7 @@ static void ice_ptp_process_tx_tstamp(struct > ice_ptp_tx *tx) { > struct ice_ptp_port *ptp_port; > unsigned long flags; > + u32 tstamp_good = 0; > struct ice_pf *pf; > struct ice_hw *hw; > u64 tstamp_ready; > @@ -658,11 +662,16 @@ static void ice_ptp_process_tx_tstamp(struct > ice_ptp_tx *tx) > if (tstamp) { > shhwtstamps.hwtstamp = ns_to_ktime(tstamp); > ice_trace(tx_tstamp_complete, skb, idx); > + > + /* Count the number of Tx timestamps that > succeeded */ > + tstamp_good++; > } > > skb_tstamp_tx(skb, &shhwtstamps); > dev_kfree_skb_any(skb); > } > + > + pf->ptp.tx_hwtstamp_good += tstamp_good; > } > > /** > > -- > 2.51.0.rc1.197.g6d975e95c9d7
Reviewed-by: Aleksandr Loktionov <[email protected]>
