mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-01 12:19:28 +00:00
Fix a long standing bug in MAC statistics register access. One
additional register was erroneously added in the MAC register set such that 7 TX statistics counters were wrong.
This commit is contained in:
parent
f6f6703f27
commit
0999f75a2f
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=272721
@ -1287,8 +1287,6 @@ alc_sysctl_node(struct alc_softc *sc)
|
||||
&stats->tx_late_colls, "Late collisions");
|
||||
ALC_SYSCTL_STAT_ADD32(ctx, child, "excess_colls",
|
||||
&stats->tx_excess_colls, "Excessive collisions");
|
||||
ALC_SYSCTL_STAT_ADD32(ctx, child, "abort",
|
||||
&stats->tx_abort, "Aborted frames due to Excessive collisions");
|
||||
ALC_SYSCTL_STAT_ADD32(ctx, child, "underruns",
|
||||
&stats->tx_underrun, "FIFO underruns");
|
||||
ALC_SYSCTL_STAT_ADD32(ctx, child, "desc_underruns",
|
||||
@ -2599,7 +2597,6 @@ alc_stats_update(struct alc_softc *sc)
|
||||
stat->tx_multi_colls += smb->tx_multi_colls;
|
||||
stat->tx_late_colls += smb->tx_late_colls;
|
||||
stat->tx_excess_colls += smb->tx_excess_colls;
|
||||
stat->tx_abort += smb->tx_abort;
|
||||
stat->tx_underrun += smb->tx_underrun;
|
||||
stat->tx_desc_underrun += smb->tx_desc_underrun;
|
||||
stat->tx_lenerrs += smb->tx_lenerrs;
|
||||
@ -2612,17 +2609,10 @@ alc_stats_update(struct alc_softc *sc)
|
||||
|
||||
if_inc_counter(ifp, IFCOUNTER_COLLISIONS, smb->tx_single_colls +
|
||||
smb->tx_multi_colls * 2 + smb->tx_late_colls +
|
||||
smb->tx_abort * HDPX_CFG_RETRY_DEFAULT);
|
||||
smb->tx_excess_colls * HDPX_CFG_RETRY_DEFAULT);
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* tx_pkts_truncated counter looks suspicious. It constantly
|
||||
* increments with no sign of Tx errors. This may indicate
|
||||
* the counter name is not correct one so I've removed the
|
||||
* counter in output errors.
|
||||
*/
|
||||
if_inc_counter(ifp, IFCOUNTER_OERRORS,
|
||||
smb->tx_abort + smb->tx_late_colls + smb->tx_underrun);
|
||||
if_inc_counter(ifp, IFCOUNTER_OERRORS, smb->tx_late_colls +
|
||||
smb->tx_excess_colls + smb->tx_underrun + smb->tx_pkts_truncated);
|
||||
|
||||
if_inc_counter(ifp, IFCOUNTER_IPACKETS, smb->rx_frames);
|
||||
|
||||
|
@ -860,7 +860,6 @@ struct smb {
|
||||
uint32_t tx_multi_colls;
|
||||
uint32_t tx_late_colls;
|
||||
uint32_t tx_excess_colls;
|
||||
uint32_t tx_abort;
|
||||
uint32_t tx_underrun;
|
||||
uint32_t tx_desc_underrun;
|
||||
uint32_t tx_lenerrs;
|
||||
|
@ -946,8 +946,6 @@ ale_sysctl_node(struct ale_softc *sc)
|
||||
&stats->tx_late_colls, "Late collisions");
|
||||
ALE_SYSCTL_STAT_ADD32(ctx, child, "excess_colls",
|
||||
&stats->tx_excess_colls, "Excessive collisions");
|
||||
ALE_SYSCTL_STAT_ADD32(ctx, child, "abort",
|
||||
&stats->tx_abort, "Aborted frames due to Excessive collisions");
|
||||
ALE_SYSCTL_STAT_ADD32(ctx, child, "underruns",
|
||||
&stats->tx_underrun, "FIFO underruns");
|
||||
ALE_SYSCTL_STAT_ADD32(ctx, child, "desc_underruns",
|
||||
@ -2197,7 +2195,6 @@ ale_stats_update(struct ale_softc *sc)
|
||||
stat->tx_multi_colls += smb->tx_multi_colls;
|
||||
stat->tx_late_colls += smb->tx_late_colls;
|
||||
stat->tx_excess_colls += smb->tx_excess_colls;
|
||||
stat->tx_abort += smb->tx_abort;
|
||||
stat->tx_underrun += smb->tx_underrun;
|
||||
stat->tx_desc_underrun += smb->tx_desc_underrun;
|
||||
stat->tx_lenerrs += smb->tx_lenerrs;
|
||||
@ -2210,17 +2207,10 @@ ale_stats_update(struct ale_softc *sc)
|
||||
|
||||
if_inc_counter(ifp, IFCOUNTER_COLLISIONS, smb->tx_single_colls +
|
||||
smb->tx_multi_colls * 2 + smb->tx_late_colls +
|
||||
smb->tx_abort * HDPX_CFG_RETRY_DEFAULT);
|
||||
smb->tx_excess_colls * HDPX_CFG_RETRY_DEFAULT);
|
||||
|
||||
/*
|
||||
* XXX
|
||||
* tx_pkts_truncated counter looks suspicious. It constantly
|
||||
* increments with no sign of Tx errors. This may indicate
|
||||
* the counter name is not correct one so I've removed the
|
||||
* counter in output errors.
|
||||
*/
|
||||
if_inc_counter(ifp, IFCOUNTER_OERRORS,
|
||||
smb->tx_abort + smb->tx_late_colls + smb->tx_underrun);
|
||||
if_inc_counter(ifp, IFCOUNTER_OERRORS, smb->tx_late_colls +
|
||||
smb->tx_excess_colls + smb->tx_underrun + smb->tx_pkts_truncated);
|
||||
|
||||
if_inc_counter(ifp, IFCOUNTER_IPACKETS, smb->rx_frames);
|
||||
|
||||
|
@ -605,7 +605,6 @@ struct smb {
|
||||
uint32_t tx_multi_colls;
|
||||
uint32_t tx_late_colls;
|
||||
uint32_t tx_excess_colls;
|
||||
uint32_t tx_abort;
|
||||
uint32_t tx_underrun;
|
||||
uint32_t tx_desc_underrun;
|
||||
uint32_t tx_lenerrs;
|
||||
|
Loading…
Reference in New Issue
Block a user