> -----Original Message----- > From: Intel-wired-lan <[email protected]> On Behalf > Of Jacob Keller > Sent: Tuesday, September 16, 2025 9:15 PM > 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: Brandeburg, Jesse <[email protected]> > Subject: [Intel-wired-lan] [PATCH iwl-next v4 4/5] ice: implement > transmit hardware timestamp statistics > > From: Jesse Brandeburg <[email protected]> > > The kernel now has common statistics for transmit timestamps, so > implement them in the ice driver. > > use via > ethtool -I -T eth0 > > Reviewed-by: Jacob Keller <[email protected]> > Reviewed-by: Jakub Kicinski <[email protected]> > Reviewed-by: Hariprasad Kelam <[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_ethtool.c | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/drivers/net/ethernet/intel/ice/ice_ethtool.c > b/drivers/net/ethernet/intel/ice/ice_ethtool.c > index 3d99c4a1e287..f8bb2d55b28c 100644 > --- a/drivers/net/ethernet/intel/ice/ice_ethtool.c > +++ b/drivers/net/ethernet/intel/ice/ice_ethtool.c > @@ -4730,6 +4730,23 @@ static void ice_get_rmon_stats(struct > net_device *netdev, > *ranges = ice_rmon_ranges; > } > > +/* ice_get_ts_stats - provide timestamping stats > + * @netdev: the netdevice pointer from ethtool > + * @ts_stats: the ethtool data structure to fill in */ static void > +ice_get_ts_stats(struct net_device *netdev, > + struct ethtool_ts_stats *ts_stats) { > + struct ice_pf *pf = ice_netdev_to_pf(netdev); > + struct ice_ptp *ptp = &pf->ptp; > + > + ts_stats->pkts = ptp->tx_hwtstamp_good; > + ts_stats->err = ptp->tx_hwtstamp_skipped + > + ptp->tx_hwtstamp_flushed + > + ptp->tx_hwtstamp_discarded; > + ts_stats->lost = ptp->tx_hwtstamp_timeouts; } > + > #define ICE_ETHTOOL_PFR (ETH_RESET_IRQ | ETH_RESET_DMA | \ > ETH_RESET_FILTER | ETH_RESET_OFFLOAD) > > @@ -4816,6 +4833,7 @@ static const struct ethtool_ops ice_ethtool_ops > = { > .get_eth_mac_stats = ice_get_eth_mac_stats, > .get_pause_stats = ice_get_pause_stats, > .get_rmon_stats = ice_get_rmon_stats, > + .get_ts_stats = ice_get_ts_stats, > .get_drvinfo = ice_get_drvinfo, > .get_regs_len = ice_get_regs_len, > .get_regs = ice_get_regs, > > -- > 2.51.0.rc1.197.g6d975e95c9d7
Reviewed-by: Aleksandr Loktionov <[email protected]>
