[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aFrZs17NpJM5SJBU@lizhi-Precision-Tower-5810>
Date: Tue, 24 Jun 2025 13:00:35 -0400
From: Frank Li <Frank.li@....com>
To: Wei Fang <wei.fang@....com>
Cc: claudiu.manoil@....com, vladimir.oltean@....com, xiaoning.wang@....com,
andrew+netdev@...n.ch, davem@...emloft.net, edumazet@...gle.com,
kuba@...nel.org, pabeni@...hat.com, horms@...nel.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
imx@...ts.linux.dev
Subject: Re: [PATCH v2 net-next 3/3] net: enetc: read 64-bit statistics from
port MAC counters
On Tue, Jun 24, 2025 at 06:15:48PM +0800, Wei Fang wrote:
> The counters of port MAC are all 64-bit registers, and the statistics of
> ethtool are u64 type, so replace enetc_port_rd() with enetc_port_rd64()
> to read 64-bit statistics.
>
> Signed-off-by: Wei Fang <wei.fang@....com>
> Reviewed-by: Claudiu Manoil <claudiu.manoil@....com>
Reviewed-by: Frank Li <Frank.Li@....com>
> ---
> .../ethernet/freescale/enetc/enetc_ethtool.c | 84 +++++++++----------
> 1 file changed, 42 insertions(+), 42 deletions(-)
>
> diff --git a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
> index 2c9aa94c8e3d..961e76cd8489 100644
> --- a/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
> +++ b/drivers/net/ethernet/freescale/enetc/enetc_ethtool.c
> @@ -320,8 +320,8 @@ static void enetc_get_ethtool_stats(struct net_device *ndev,
> static void enetc_pause_stats(struct enetc_hw *hw, int mac,
> struct ethtool_pause_stats *pause_stats)
> {
> - pause_stats->tx_pause_frames = enetc_port_rd(hw, ENETC_PM_TXPF(mac));
> - pause_stats->rx_pause_frames = enetc_port_rd(hw, ENETC_PM_RXPF(mac));
> + pause_stats->tx_pause_frames = enetc_port_rd64(hw, ENETC_PM_TXPF(mac));
> + pause_stats->rx_pause_frames = enetc_port_rd64(hw, ENETC_PM_RXPF(mac));
> }
>
> static void enetc_get_pause_stats(struct net_device *ndev,
> @@ -348,31 +348,31 @@ static void enetc_get_pause_stats(struct net_device *ndev,
> static void enetc_mac_stats(struct enetc_hw *hw, int mac,
> struct ethtool_eth_mac_stats *s)
> {
> - s->FramesTransmittedOK = enetc_port_rd(hw, ENETC_PM_TFRM(mac));
> - s->SingleCollisionFrames = enetc_port_rd(hw, ENETC_PM_TSCOL(mac));
> - s->MultipleCollisionFrames = enetc_port_rd(hw, ENETC_PM_TMCOL(mac));
> - s->FramesReceivedOK = enetc_port_rd(hw, ENETC_PM_RFRM(mac));
> - s->FrameCheckSequenceErrors = enetc_port_rd(hw, ENETC_PM_RFCS(mac));
> - s->AlignmentErrors = enetc_port_rd(hw, ENETC_PM_RALN(mac));
> - s->OctetsTransmittedOK = enetc_port_rd(hw, ENETC_PM_TEOCT(mac));
> - s->FramesWithDeferredXmissions = enetc_port_rd(hw, ENETC_PM_TDFR(mac));
> - s->LateCollisions = enetc_port_rd(hw, ENETC_PM_TLCOL(mac));
> - s->FramesAbortedDueToXSColls = enetc_port_rd(hw, ENETC_PM_TECOL(mac));
> - s->FramesLostDueToIntMACXmitError = enetc_port_rd(hw, ENETC_PM_TERR(mac));
> - s->CarrierSenseErrors = enetc_port_rd(hw, ENETC_PM_TCRSE(mac));
> - s->OctetsReceivedOK = enetc_port_rd(hw, ENETC_PM_REOCT(mac));
> - s->FramesLostDueToIntMACRcvError = enetc_port_rd(hw, ENETC_PM_RDRNTP(mac));
> - s->MulticastFramesXmittedOK = enetc_port_rd(hw, ENETC_PM_TMCA(mac));
> - s->BroadcastFramesXmittedOK = enetc_port_rd(hw, ENETC_PM_TBCA(mac));
> - s->MulticastFramesReceivedOK = enetc_port_rd(hw, ENETC_PM_RMCA(mac));
> - s->BroadcastFramesReceivedOK = enetc_port_rd(hw, ENETC_PM_RBCA(mac));
> + s->FramesTransmittedOK = enetc_port_rd64(hw, ENETC_PM_TFRM(mac));
> + s->SingleCollisionFrames = enetc_port_rd64(hw, ENETC_PM_TSCOL(mac));
> + s->MultipleCollisionFrames = enetc_port_rd64(hw, ENETC_PM_TMCOL(mac));
> + s->FramesReceivedOK = enetc_port_rd64(hw, ENETC_PM_RFRM(mac));
> + s->FrameCheckSequenceErrors = enetc_port_rd64(hw, ENETC_PM_RFCS(mac));
> + s->AlignmentErrors = enetc_port_rd64(hw, ENETC_PM_RALN(mac));
> + s->OctetsTransmittedOK = enetc_port_rd64(hw, ENETC_PM_TEOCT(mac));
> + s->FramesWithDeferredXmissions = enetc_port_rd64(hw, ENETC_PM_TDFR(mac));
> + s->LateCollisions = enetc_port_rd64(hw, ENETC_PM_TLCOL(mac));
> + s->FramesAbortedDueToXSColls = enetc_port_rd64(hw, ENETC_PM_TECOL(mac));
> + s->FramesLostDueToIntMACXmitError = enetc_port_rd64(hw, ENETC_PM_TERR(mac));
> + s->CarrierSenseErrors = enetc_port_rd64(hw, ENETC_PM_TCRSE(mac));
> + s->OctetsReceivedOK = enetc_port_rd64(hw, ENETC_PM_REOCT(mac));
> + s->FramesLostDueToIntMACRcvError = enetc_port_rd64(hw, ENETC_PM_RDRNTP(mac));
> + s->MulticastFramesXmittedOK = enetc_port_rd64(hw, ENETC_PM_TMCA(mac));
> + s->BroadcastFramesXmittedOK = enetc_port_rd64(hw, ENETC_PM_TBCA(mac));
> + s->MulticastFramesReceivedOK = enetc_port_rd64(hw, ENETC_PM_RMCA(mac));
> + s->BroadcastFramesReceivedOK = enetc_port_rd64(hw, ENETC_PM_RBCA(mac));
> }
>
> static void enetc_ctrl_stats(struct enetc_hw *hw, int mac,
> struct ethtool_eth_ctrl_stats *s)
> {
> - s->MACControlFramesTransmitted = enetc_port_rd(hw, ENETC_PM_TCNP(mac));
> - s->MACControlFramesReceived = enetc_port_rd(hw, ENETC_PM_RCNP(mac));
> + s->MACControlFramesTransmitted = enetc_port_rd64(hw, ENETC_PM_TCNP(mac));
> + s->MACControlFramesReceived = enetc_port_rd64(hw, ENETC_PM_RCNP(mac));
> }
>
> static const struct ethtool_rmon_hist_range enetc_rmon_ranges[] = {
> @@ -389,26 +389,26 @@ static const struct ethtool_rmon_hist_range enetc_rmon_ranges[] = {
> static void enetc_rmon_stats(struct enetc_hw *hw, int mac,
> struct ethtool_rmon_stats *s)
> {
> - s->undersize_pkts = enetc_port_rd(hw, ENETC_PM_RUND(mac));
> - s->oversize_pkts = enetc_port_rd(hw, ENETC_PM_ROVR(mac));
> - s->fragments = enetc_port_rd(hw, ENETC_PM_RFRG(mac));
> - s->jabbers = enetc_port_rd(hw, ENETC_PM_RJBR(mac));
> -
> - s->hist[0] = enetc_port_rd(hw, ENETC_PM_R64(mac));
> - s->hist[1] = enetc_port_rd(hw, ENETC_PM_R127(mac));
> - s->hist[2] = enetc_port_rd(hw, ENETC_PM_R255(mac));
> - s->hist[3] = enetc_port_rd(hw, ENETC_PM_R511(mac));
> - s->hist[4] = enetc_port_rd(hw, ENETC_PM_R1023(mac));
> - s->hist[5] = enetc_port_rd(hw, ENETC_PM_R1522(mac));
> - s->hist[6] = enetc_port_rd(hw, ENETC_PM_R1523X(mac));
> -
> - s->hist_tx[0] = enetc_port_rd(hw, ENETC_PM_T64(mac));
> - s->hist_tx[1] = enetc_port_rd(hw, ENETC_PM_T127(mac));
> - s->hist_tx[2] = enetc_port_rd(hw, ENETC_PM_T255(mac));
> - s->hist_tx[3] = enetc_port_rd(hw, ENETC_PM_T511(mac));
> - s->hist_tx[4] = enetc_port_rd(hw, ENETC_PM_T1023(mac));
> - s->hist_tx[5] = enetc_port_rd(hw, ENETC_PM_T1522(mac));
> - s->hist_tx[6] = enetc_port_rd(hw, ENETC_PM_T1523X(mac));
> + s->undersize_pkts = enetc_port_rd64(hw, ENETC_PM_RUND(mac));
> + s->oversize_pkts = enetc_port_rd64(hw, ENETC_PM_ROVR(mac));
> + s->fragments = enetc_port_rd64(hw, ENETC_PM_RFRG(mac));
> + s->jabbers = enetc_port_rd64(hw, ENETC_PM_RJBR(mac));
> +
> + s->hist[0] = enetc_port_rd64(hw, ENETC_PM_R64(mac));
> + s->hist[1] = enetc_port_rd64(hw, ENETC_PM_R127(mac));
> + s->hist[2] = enetc_port_rd64(hw, ENETC_PM_R255(mac));
> + s->hist[3] = enetc_port_rd64(hw, ENETC_PM_R511(mac));
> + s->hist[4] = enetc_port_rd64(hw, ENETC_PM_R1023(mac));
> + s->hist[5] = enetc_port_rd64(hw, ENETC_PM_R1522(mac));
> + s->hist[6] = enetc_port_rd64(hw, ENETC_PM_R1523X(mac));
> +
> + s->hist_tx[0] = enetc_port_rd64(hw, ENETC_PM_T64(mac));
> + s->hist_tx[1] = enetc_port_rd64(hw, ENETC_PM_T127(mac));
> + s->hist_tx[2] = enetc_port_rd64(hw, ENETC_PM_T255(mac));
> + s->hist_tx[3] = enetc_port_rd64(hw, ENETC_PM_T511(mac));
> + s->hist_tx[4] = enetc_port_rd64(hw, ENETC_PM_T1023(mac));
> + s->hist_tx[5] = enetc_port_rd64(hw, ENETC_PM_T1522(mac));
> + s->hist_tx[6] = enetc_port_rd64(hw, ENETC_PM_T1523X(mac));
> }
>
> static void enetc_get_eth_mac_stats(struct net_device *ndev,
> --
> 2.34.1
>
Powered by blists - more mailing lists