* [PATCH v2] net: ti: icssg-prueth: Fix tx_total_bytes count
@ 2023-10-12 6:46 MD Danish Anwar
2023-10-14 0:40 ` patchwork-bot+netdevbpf
0 siblings, 1 reply; 2+ messages in thread
From: MD Danish Anwar @ 2023-10-12 6:46 UTC (permalink / raw)
To: MD Danish Anwar, Paolo Abeni, Jakub Kicinski, Eric Dumazet,
David S. Miller
Cc: linux-kernel, netdev, srk, Vignesh Raghavendra, r-gunasekaran,
Roger Quadros, Andrew Lunn
ICSSG HW stats on TX side considers 8 preamble bytes as data bytes. Due
to this the tx_bytes of ICSSG interface doesn't match the rx_bytes of the
link partner. There is no public errata available yet.
As a workaround to fix this, decrease tx_bytes by 8 bytes for every tx
frame.
Fixes: c1e10d5dc7a1 ("net: ti: icssg-prueth: Add ICSSG Stats")
Signed-off-by: MD Danish Anwar <danishanwar@ti.com>
---
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Ravi Gunasekaran <r-gunasekaran@ti.com>
Changes from v1 to v2:
*) Rebased on the latest net/main.
*) Changed stats name comparison to stats offset comparison as asked by
Andrew.
*) Modified commit message as asked by Ravi.
v1: https://lore.kernel.org/all/20231011063700.1824093-1-danishanwar@ti.com/
drivers/net/ethernet/ti/icssg/icssg_stats.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/net/ethernet/ti/icssg/icssg_stats.c b/drivers/net/ethernet/ti/icssg/icssg_stats.c
index bb0b33927e3b..3dbadddd7e35 100644
--- a/drivers/net/ethernet/ti/icssg/icssg_stats.c
+++ b/drivers/net/ethernet/ti/icssg/icssg_stats.c
@@ -9,6 +9,9 @@
#include "icssg_stats.h"
#include <linux/regmap.h>
+#define ICSSG_TX_PACKET_OFFSET 0xA0
+#define ICSSG_TX_BYTE_OFFSET 0xEC
+
static u32 stats_base[] = { 0x54c, /* Slice 0 stats start */
0xb18, /* Slice 1 stats start */
};
@@ -18,6 +21,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 +33,12 @@ void emac_update_hardware_stats(struct prueth_emac *emac)
base + icssg_all_stats[i].offset,
val);
+ if (icssg_all_stats[i].offset == ICSSG_TX_PACKET_OFFSET)
+ tx_pkt_cnt = val;
+
emac->stats[i] += val;
+ if (icssg_all_stats[i].offset == ICSSG_TX_BYTE_OFFSET)
+ emac->stats[i] -= tx_pkt_cnt * 8;
}
}
base-commit: 71c299c711d1f44f0bf04f1fea66baad565240f1
--
2.34.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH v2] net: ti: icssg-prueth: Fix tx_total_bytes count
2023-10-12 6:46 [PATCH v2] net: ti: icssg-prueth: Fix tx_total_bytes count MD Danish Anwar
@ 2023-10-14 0:40 ` patchwork-bot+netdevbpf
0 siblings, 0 replies; 2+ messages in thread
From: patchwork-bot+netdevbpf @ 2023-10-14 0:40 UTC (permalink / raw)
To: MD Danish Anwar
Cc: pabeni, kuba, edumazet, davem, linux-kernel, netdev, srk,
vigneshr, r-gunasekaran, rogerq, andrew
Hello:
This patch was applied to netdev/net.git (main)
by Jakub Kicinski <kuba@kernel.org>:
On Thu, 12 Oct 2023 12:16:26 +0530 you wrote:
> ICSSG HW stats on TX side considers 8 preamble bytes as data bytes. Due
> to this the tx_bytes of ICSSG interface doesn't match the rx_bytes of the
> link partner. There is no public errata available yet.
>
> As a workaround to fix this, decrease tx_bytes by 8 bytes for every tx
> frame.
>
> [...]
Here is the summary with links:
- [v2] net: ti: icssg-prueth: Fix tx_total_bytes count
https://git.kernel.org/netdev/net/c/2c0d808f36cc
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-10-14 0:40 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-10-12 6:46 [PATCH v2] net: ti: icssg-prueth: Fix tx_total_bytes count MD Danish Anwar
2023-10-14 0:40 ` patchwork-bot+netdevbpf
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®