* [PATCH] mv643xx_eth: Add Rx Discard and Rx Overrun statistics
@ 2012-01-23 11:16 Paulius Zaleckas
2012-01-23 19:01 ` David Miller
0 siblings, 1 reply; 2+ messages in thread
From: Paulius Zaleckas @ 2012-01-23 11:16 UTC (permalink / raw)
To: buytenh, netdev
These statistics helped me a lot while searching who is losing
packets in my setup.
I added these stats to MIB group since they are very similar,
but just in other registers.
I have tested this patch on 88F6281 SoC.
Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
---
drivers/net/ethernet/marvell/mv643xx_eth.c | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 9c049d2..9edecfa 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -136,6 +136,8 @@ static char mv643xx_eth_driver_version[] = "1.4";
#define INT_MASK 0x0068
#define INT_MASK_EXT 0x006c
#define TX_FIFO_URGENT_THRESHOLD 0x0074
+#define RX_DISCARD_FRAME_CNT 0x0084
+#define RX_OVERRUN_FRAME_CNT 0x0088
#define TXQ_FIX_PRIO_CONF_MOVED 0x00dc
#define TX_BW_RATE_MOVED 0x00e0
#define TX_BW_MTU_MOVED 0x00e8
@@ -334,6 +336,9 @@ struct mib_counters {
u32 bad_crc_event;
u32 collision;
u32 late_collision;
+ /* Non MIB hardware counters */
+ u32 rx_discard;
+ u32 rx_overrun;
};
struct lro_counters {
@@ -1225,6 +1230,10 @@ static void mib_counters_clear(struct mv643xx_eth_private *mp)
for (i = 0; i < 0x80; i += 4)
mib_read(mp, i);
+
+ /* Clear non MIB hw counters also */
+ rdlp(mp, RX_DISCARD_FRAME_CNT);
+ rdlp(mp, RX_OVERRUN_FRAME_CNT);
}
static void mib_counters_update(struct mv643xx_eth_private *mp)
@@ -1262,6 +1271,9 @@ static void mib_counters_update(struct mv643xx_eth_private *mp)
p->bad_crc_event += mib_read(mp, 0x74);
p->collision += mib_read(mp, 0x78);
p->late_collision += mib_read(mp, 0x7c);
+ /* Non MIB hardware counters */
+ p->rx_discard += rdlp(mp, RX_DISCARD_FRAME_CNT);
+ p->rx_overrun += rdlp(mp, RX_OVERRUN_FRAME_CNT);
spin_unlock_bh(&mp->mib_counters_lock);
mod_timer(&mp->mib_counters_timer, jiffies + 30 * HZ);
@@ -1413,6 +1425,8 @@ static const struct mv643xx_eth_stats mv643xx_eth_stats[] = {
MIBSTAT(bad_crc_event),
MIBSTAT(collision),
MIBSTAT(late_collision),
+ MIBSTAT(rx_discard),
+ MIBSTAT(rx_overrun),
LROSTAT(lro_aggregated),
LROSTAT(lro_flushed),
LROSTAT(lro_no_desc),
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] mv643xx_eth: Add Rx Discard and Rx Overrun statistics
2012-01-23 11:16 [PATCH] mv643xx_eth: Add Rx Discard and Rx Overrun statistics Paulius Zaleckas
@ 2012-01-23 19:01 ` David Miller
0 siblings, 0 replies; 2+ messages in thread
From: David Miller @ 2012-01-23 19:01 UTC (permalink / raw)
To: paulius.zaleckas; +Cc: buytenh, netdev
From: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Date: Mon, 23 Jan 2012 13:16:35 +0200
> These statistics helped me a lot while searching who is losing
> packets in my setup.
> I added these stats to MIB group since they are very similar,
> but just in other registers.
> I have tested this patch on 88F6281 SoC.
>
> Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com>
Applied, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2012-01-23 19:01 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-23 11:16 [PATCH] mv643xx_eth: Add Rx Discard and Rx Overrun statistics Paulius Zaleckas
2012-01-23 19:01 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).