Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Adopt <net/if_stats.h>.
details: https://anonhg.NetBSD.org/src/rev/b34a52390d96
branches: trunk
changeset: 744422:b34a52390d96
user: thorpej <thorpej%NetBSD.org@localhost>
date: Sat Feb 01 07:12:40 2020 +0000
description:
Adopt <net/if_stats.h>.
diffstat:
sys/dev/pci/if_bnx.c | 39 ++++++++++++++++++++++++++-------------
sys/dev/pci/if_bnxvar.h | 7 ++++++-
2 files changed, 32 insertions(+), 14 deletions(-)
diffs (127 lines):
diff -r 7958db2fe764 -r b34a52390d96 sys/dev/pci/if_bnx.c
--- a/sys/dev/pci/if_bnx.c Sat Feb 01 06:38:58 2020 +0000
+++ b/sys/dev/pci/if_bnx.c Sat Feb 01 07:12:40 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bnx.c,v 1.89 2019/12/27 08:22:50 msaitoh Exp $ */
+/* $NetBSD: if_bnx.c,v 1.90 2020/02/01 07:12:40 thorpej Exp $ */
/* $OpenBSD: if_bnx.c,v 1.101 2013/03/28 17:21:44 brad Exp $ */
/*-
@@ -35,7 +35,7 @@
#if 0
__FBSDID("$FreeBSD: src/sys/dev/bce/if_bce.c,v 1.3 2006/04/13 14:12:26 ru Exp $");
#endif
-__KERNEL_RCSID(0, "$NetBSD: if_bnx.c,v 1.89 2019/12/27 08:22:50 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bnx.c,v 1.90 2020/02/01 07:12:40 thorpej Exp $");
/*
* The following controllers are supported by this driver:
@@ -4685,7 +4685,7 @@
len < (BNX_MIN_MTU - ETHER_CRC_LEN) ||
len >
(BNX_MAX_JUMBO_ETHER_MTU_VLAN - ETHER_CRC_LEN)) {
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
DBRUNIF(1, sc->l2fhdr_status_errors++);
/* Reuse the mbuf for a new frame. */
@@ -4710,7 +4710,7 @@
"Failed to allocate "
"new mbuf, incoming frame dropped!\n"));
- ifp->if_ierrors++;
+ if_statinc(ifp, if_ierrors);
/* Try and reuse the exisitng mbuf. */
if (bnx_add_buf(sc, m, &sw_prod,
@@ -4911,7 +4911,7 @@
m_freem(pkt->pkt_mbuf);
DBRUNIF(1, sc->tx_mbuf_alloc--);
- ifp->if_opackets++;
+ if_statinc(ifp, if_opackets);
mutex_enter(&sc->tx_pkt_mtx);
TAILQ_INSERT_TAIL(&sc->tx_free_pkts, pkt, pkt_entry);
@@ -5456,7 +5456,7 @@
bnx_init(ifp);
- ifp->if_oerrors++;
+ if_statinc(ifp, if_oerrors);
}
/*
@@ -5672,22 +5672,31 @@
stats = (struct statistics_block *)sc->stats_block;
+ net_stat_ref_t nsr = IF_STAT_GETREF(ifp);
+ uint64_t value;
+
/*
* Update the interface statistics from the
* hardware statistics.
*/
- ifp->if_collisions = (u_long)stats->stat_EtherStatsCollisions;
-
- ifp->if_ierrors = (u_long)stats->stat_EtherStatsUndersizePkts +
+ value = (u_long)stats->stat_EtherStatsCollisions;
+ if_statadd_ref(nsr, if_collisions, value - sc->if_stat_collisions);
+ sc->if_stat_collisions = value;
+
+ value = (u_long)stats->stat_EtherStatsUndersizePkts +
(u_long)stats->stat_EtherStatsOverrsizePkts +
(u_long)stats->stat_IfInMBUFDiscards +
(u_long)stats->stat_Dot3StatsAlignmentErrors +
(u_long)stats->stat_Dot3StatsFCSErrors;
-
- ifp->if_oerrors = (u_long)
+ if_statadd_ref(nsr, if_ierrors, value - sc->if_stat_ierrors);
+ sc->if_stat_ierrors = value;
+
+ value = (u_long)
stats->stat_emac_tx_stat_dot3statsinternalmactransmiterrors +
(u_long)stats->stat_Dot3StatsExcessiveCollisions +
(u_long)stats->stat_Dot3StatsLateCollisions;
+ if_statadd_ref(nsr, if_oerrors, value - sc->if_stat_oerrors);
+ sc->if_stat_oerrors = value;
/*
* Certain controllers don't report
@@ -5695,8 +5704,12 @@
* See errata E11_5708CA0_1165.
*/
if (!(BNX_CHIP_NUM(sc) == BNX_CHIP_NUM_5706) &&
- !(BNX_CHIP_ID(sc) == BNX_CHIP_ID_5708_A0))
- ifp->if_oerrors += (u_long) stats->stat_Dot3StatsCarrierSenseErrors;
+ !(BNX_CHIP_ID(sc) == BNX_CHIP_ID_5708_A0)) {
+ if_statadd_ref(nsr, if_oerrors,
+ (u_long) stats->stat_Dot3StatsCarrierSenseErrors);
+ }
+
+ IF_STAT_PUTREF(ifp);
/*
* Update the sysctl statistics from the
diff -r 7958db2fe764 -r b34a52390d96 sys/dev/pci/if_bnxvar.h
--- a/sys/dev/pci/if_bnxvar.h Sat Feb 01 06:38:58 2020 +0000
+++ b/sys/dev/pci/if_bnxvar.h Sat Feb 01 07:12:40 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bnxvar.h,v 1.11 2019/04/11 14:38:06 kamil Exp $ */
+/* $NetBSD: if_bnxvar.h,v 1.12 2020/02/01 07:12:40 thorpej Exp $ */
/*-
* Copyright (c) 2010 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -290,6 +290,11 @@
uint16_t used_tx_bd;
uint16_t max_tx_bd;
+ /* For interfacing with if_stats */
+ uint64_t if_stat_collisions;
+ uint64_t if_stat_ierrors;
+ uint64_t if_stat_oerrors;
+
/* Provides access to hardware statistics through sysctl. */
uint64_t stat_IfHCInOctets;
uint64_t stat_IfHCInBadOctets;
Home |
Main Index |
Thread Index |
Old Index