Message ID | 20240606224701.359706-4-jesse.brandeburg@intel.com (mailing list archive) |
---|---|
State | Awaiting Upstream |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | ice: add standard stats | expand |
On Thu, Jun 06, 2024 at 03:46:57PM -0700, Jesse Brandeburg wrote: > 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 <jacob.e.keller@intel.com> > Reviewed-by: Jakub Kicinski <kuba@kernel.org> > Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Hi Jesse, The minor nit below notwithstanding, this looks good for me. Reviewed-by: Simon Horman <horms@kernel.org> ... > diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.h b/drivers/net/ethernet/intel/ice/ice_ptp.h > index 3af20025043a..2b15f2b58789 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ptp.h > +++ b/drivers/net/ethernet/intel/ice/ice_ptp.h > @@ -253,6 +253,7 @@ struct ice_ptp { > struct ptp_clock *clock; > struct hwtstamp_config tstamp_config; > u64 reset_time; > + u64 tx_hwtstamp_good; nit: There should be an entry for @tx_hwtstamp_good added to the Kernel doc for this structure. Also, not strictly related to this patch, but related to Kernel doc. It would be very nice, IMHO, if some work could be done to add Return: sections to Kernel docs for the ice and moreover Intel Wired Ethernet drivers. These are flagged by kernel-doc -none -Wall, which was recently enabled for NIPA. And there are a lot of them. > u32 tx_hwtstamp_skipped; > u32 tx_hwtstamp_timeouts; > u32 tx_hwtstamp_flushed; > -- > 2.43.0 > >
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.c b/drivers/net/ethernet/intel/ice/ice_ptp.c index 0f17fc1181d2..ff0ba81d0694 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.c +++ b/drivers/net/ethernet/intel/ice/ice_ptp.c @@ -628,6 +628,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); @@ -686,6 +689,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; @@ -786,11 +790,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; } /** diff --git a/drivers/net/ethernet/intel/ice/ice_ptp.h b/drivers/net/ethernet/intel/ice/ice_ptp.h index 3af20025043a..2b15f2b58789 100644 --- a/drivers/net/ethernet/intel/ice/ice_ptp.h +++ b/drivers/net/ethernet/intel/ice/ice_ptp.h @@ -253,6 +253,7 @@ struct ice_ptp { struct ptp_clock *clock; struct hwtstamp_config tstamp_config; u64 reset_time; + u64 tx_hwtstamp_good; u32 tx_hwtstamp_skipped; u32 tx_hwtstamp_timeouts; u32 tx_hwtstamp_flushed;