[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5e330c1e-3d5e-ad1b-1333-d7595cd47069@ti.com>
Date: Thu, 12 Oct 2023 10:52:01 +0530
From: MD Danish Anwar <danishanwar@...com>
To: Ravi Gunasekaran <r-gunasekaran@...com>,
Paolo Abeni <pabeni@...hat.com>,
Jakub Kicinski <kuba@...nel.org>,
Eric Dumazet <edumazet@...gle.com>,
"David S. Miller" <davem@...emloft.net>
CC: <linux-kernel@...r.kernel.org>, <netdev@...r.kernel.org>,
<srk@...com>, Vignesh Raghavendra <vigneshr@...com>,
Roger Quadros <rogerq@...nel.org>
Subject: Re: [PATCH] net: ti: icssg-prueth: Fix tx_total_bytes count
On 11/10/23 15:16, Ravi Gunasekaran wrote:
>
>
> On 10/11/23 12:07 PM, MD Danish Anwar wrote:
>> ICSSG HW stats on TX side considers 8 preamble bytes as data bytes. Due
>> to this the tx_total_bytes of one interface doesn't match the
>> rx_total_bytes of other interface when two ICSSG interfaces are
>
> The errata is on the ICSSG Tx side regardless of which interface it is
> connected to. Please rephrase this part of the message to something like,
> "rx_total_bytes of the link partner".
>
Sure Ravi, I'll update the commit message.
>> connected with each other. There is no public errata available yet.
>>
>> As a workaround to fix this, decrease tx_total_bytes by 8 bytes for every
>> tx frame.
>>
>> Fixes: c1e10d5dc7a1 ("net: ti: icssg-prueth: Add ICSSG Stats")
>> Signed-off-by: MD Danish Anwar <danishanwar@...com>
>> ---
>> drivers/net/ethernet/ti/icssg/icssg_stats.c | 6 ++++++
>> 1 file changed, 6 insertions(+)
>>
>> diff --git a/drivers/net/ethernet/ti/icssg/icssg_stats.c b/drivers/net/ethernet/ti/icssg/icssg_stats.c
>> index bb0b33927e3b..dc12edcbac02 100644
>> --- a/drivers/net/ethernet/ti/icssg/icssg_stats.c
>> +++ b/drivers/net/ethernet/ti/icssg/icssg_stats.c
>> @@ -18,6 +18,7 @@ void emac_update_hardware_stats(struct prueth_emac *emac)
>> struct prueth *prueth = emac->prueth;
>> int slice = prueth_emac_slice(emac);
>> u32 base = stats_base[slice];
>> + u32 tx_pkt_cnt = 0;
>> u32 val;
>> int i;
>>
>> @@ -29,7 +30,12 @@ void emac_update_hardware_stats(struct prueth_emac *emac)
>> base + icssg_all_stats[i].offset,
>> val);
>>
>> + if (!strncmp(icssg_ethtool_stats[i].name, "tx_good_frames", ETH_GSTRING_LEN))
>> + tx_pkt_cnt = val;
>> +
>> emac->stats[i] += val;
>> + if (!strncmp(icssg_ethtool_stats[i].name, "tx_total_bytes", ETH_GSTRING_LEN))
>> + emac->stats[i] -= tx_pkt_cnt * 8;
>> }
>> }
>>
>
--
Thanks and Regards,
Danish
Powered by blists - more mailing lists