Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/net Remove the conditional __IF_STATS_PERCPU.



details:   https://anonhg.NetBSD.org/src/rev/72de5feb19b7
branches:  trunk
changeset: 744864:72de5feb19b7
user:      thorpej <thorpej%NetBSD.org@localhost>
date:      Fri Feb 14 22:04:12 2020 +0000

description:
Remove the conditional __IF_STATS_PERCPU.

diffstat:

 sys/net/if.h       |  33 +--------------------------------
 sys/net/if_stats.c |  44 ++------------------------------------------
 sys/net/if_stats.h |  49 ++++---------------------------------------------
 3 files changed, 7 insertions(+), 119 deletions(-)

diffs (225 lines):

diff -r 3dcdbbd71ca7 -r 72de5feb19b7 sys/net/if.h
--- a/sys/net/if.h      Fri Feb 14 18:17:23 2020 +0000
+++ b/sys/net/if.h      Fri Feb 14 22:04:12 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if.h,v 1.281 2020/02/06 23:30:19 thorpej Exp $ */
+/*     $NetBSD: if.h,v 1.282 2020/02/14 22:04:12 thorpej Exp $ */
 
 /*-
  * Copyright (c) 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -63,12 +63,6 @@
 #ifndef _NET_IF_H_
 #define _NET_IF_H_
 
-/*
- * Temporary, to allow for a quick disable if problems are discovered
- * during a transition period.
- */
-#define        __IF_STATS_PERCPU
-
 #if !defined(_KERNEL) && !defined(_STANDALONE)
 #include <stdbool.h>
 #endif
@@ -282,7 +276,6 @@
        short           if_timer;       /* ?: time 'til if_slowtimo called */
        unsigned short  if_flags;       /* i: up/down, broadcast, etc. */
        short           if_extflags;    /* :: if_output MP-safe, etc. */
-#ifdef __IF_STATS_PERCPU
        u_char          if_type;        /* :: ethernet, tokenring, etc. */
        u_char          if_addrlen;     /* :: media address length */
        u_char          if_hdrlen;      /* :: media header length */
@@ -297,9 +290,6 @@
 #else
        void            *if_stats;      /* opaque to user-space */
 #endif /* _KERNEL */
-#else /* ! __IF_STATS_PERCPU */
-       struct if_data  if_data;        /* ?: statistics and other data */
-#endif /* __IF_STATS_PERCPU */
        /*
         * Procedure handles.  If you add more of these, don't forget the
         * corresponding NULL stub in if.c.
@@ -426,27 +416,6 @@
 
 #include <net/if_stats.h>
  
-#ifndef __IF_STATS_PERCPU
-#define        if_mtu          if_data.ifi_mtu
-#define        if_type         if_data.ifi_type
-#define        if_addrlen      if_data.ifi_addrlen
-#define        if_hdrlen       if_data.ifi_hdrlen
-#define        if_metric       if_data.ifi_metric
-#define        if_link_state   if_data.ifi_link_state
-#define        if_baudrate     if_data.ifi_baudrate
-#define        if_ipackets     if_data.ifi_ipackets
-#define        if_ierrors      if_data.ifi_ierrors
-#define        if_opackets     if_data.ifi_opackets
-#define        if_oerrors      if_data.ifi_oerrors
-#define        if_collisions   if_data.ifi_collisions
-#define        if_ibytes       if_data.ifi_ibytes
-#define        if_obytes       if_data.ifi_obytes
-#define        if_imcasts      if_data.ifi_imcasts
-#define        if_omcasts      if_data.ifi_omcasts
-#define        if_iqdrops      if_data.ifi_iqdrops
-#define        if_noproto      if_data.ifi_noproto
-#define        if_lastchange   if_data.ifi_lastchange
-#endif /* __IF_STATS_PERCPU */
 #define        if_name(ifp)    ((ifp)->if_xname)
 
 #define        IFF_UP          0x0001          /* interface is up */
diff -r 3dcdbbd71ca7 -r 72de5feb19b7 sys/net/if_stats.c
--- a/sys/net/if_stats.c        Fri Feb 14 18:17:23 2020 +0000
+++ b/sys/net/if_stats.c        Fri Feb 14 22:04:12 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_stats.c,v 1.2 2020/02/07 12:35:33 thorpej Exp $     */
+/*     $NetBSD: if_stats.c,v 1.3 2020/02/14 22:04:12 thorpej Exp $     */
 
 /*-
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_stats.c,v 1.2 2020/02/07 12:35:33 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_stats.c,v 1.3 2020/02/14 22:04:12 thorpej Exp $");
 
 #include <sys/param.h>
 #include <sys/mbuf.h>
@@ -48,11 +48,9 @@
 int
 if_stats_init(ifnet_t * const ifp)
 {
-#ifdef __IF_STATS_PERCPU
        ifp->if_stats = percpu_alloc(IF_STATS_SIZE);
        if (ifp->if_stats == NULL)
                return ENOMEM;
-#endif /* __IF_STATS_PERCPU */
        return 0;
 }
 
@@ -63,17 +61,13 @@
 void
 if_stats_fini(ifnet_t * const ifp)
 {
-#ifdef __IF_STATS_PERCPU
        percpu_t *pc = ifp->if_stats;
        ifp->if_stats = NULL;
        if (pc) {
                percpu_free(pc, IF_STATS_SIZE);
        }
-#endif /* __IF_STATS_PERCPU */
 }
 
-#ifdef __IF_STATS_PERCPU
-
 struct if_stats_to_if_data_ctx {
        struct if_data * const ifi;
        const bool zero_stats;
@@ -127,37 +121,3 @@
        percpu_foreach_xcall(ifp->if_stats, XC_HIGHPRI_IPL(IPL_SOFTNET),
            if_stats_to_if_data_cb, &ctx);
 }
-
-#else /* ! __IF_STATS_PERCPU */
-
-/*
- * if_stats_to_if_data --
- *     Collect the interface statistics and place them into the
- *     legacy if_data structure for reportig to user space.
- *     Optionally zeros the stats after collection.
- */
-void
-if_stats_to_if_data(ifnet_t * const ifp, struct if_data * const ifi,
-                   const bool zero_stats)
-{
-
-       memset(ifi, 0, sizeof(*ifi));
-
-       int s = splnet();
-
-       if (ifi) {
-               memcpy(&ifi->ifi_ipackets, &ifp->if_data.ifi_ipackets,
-                   offsetof(struct if_data, ifi_lastchange) -
-                   offsetof(struct if_data, ifi_ipackets));
-       }
-
-       if (zero_stats) {
-               memset(&ifp->if_data.ifi_ipackets, 0,
-                   offsetof(struct if_data, ifi_lastchange) -
-                   offsetof(struct if_data, ifi_ipackets));
-       }
-
-       splx(s);
-}
-
-#endif /* __IF_STATS_PERCPU */
diff -r 3dcdbbd71ca7 -r 72de5feb19b7 sys/net/if_stats.h
--- a/sys/net/if_stats.h        Fri Feb 14 18:17:23 2020 +0000
+++ b/sys/net/if_stats.h        Fri Feb 14 22:04:12 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_stats.h,v 1.1 2020/01/29 03:16:28 thorpej Exp $     */
+/*     $NetBSD: if_stats.h,v 1.2 2020/02/14 22:04:12 thorpej Exp $     */
 
 /*-
  * Copyright (c) 2020 The NetBSD Foundation, Inc.
@@ -34,7 +34,6 @@
 
 #include <net/net_stats.h>
 
-#ifdef __IF_STATS_PERCPU
 /*
  * Interface statistics.  All values are unsigned 64-bit.
  */
@@ -116,50 +115,10 @@
        _NET_STATSUB_REF(nsr, x, v);
 }
 
-#endif /* _KERNEL */
-
-#else /* ! __IF_STATS_PERCPU */
-
-#ifdef _KERNEL
-
-/*
- * Transitional aid to allow drivers to migrate to the new API.  Once
- * all drivers are transitioned, the implementation will be replaced
- * with per-cpu counters.
- */
-
-static inline net_stat_ref_t
-IF_STAT_GETREF(ifnet_t *ifp)
-{
-       return (net_stat_ref_t)ifp;
-}
-
-#define        IF_STAT_PUTREF(ifp)     __nothing
-
-#define        if_statinc(ifp, x)      do { ++(ifp)->x; } while (/*CONSTCOND*/0)
-#define        if_statdec(ifp, x)      do { --(ifp)->x; } while (/*CONSTCOND*/0)
-#define        if_statadd(ifp, x, v)   do { (ifp)->x += (v); } while (/*CONSTCOND*/0)
-#define        if_statsub(ifp, x, v)   do { (ifp)->x -= (v); } while (/*CONSTCOND*/0)
-
-#define        if_statadd2(ifp, x1, v1, x2, v2)                                \
-do {                                                                   \
-       (ifp)->x1 += (v1);                                              \
-       (ifp)->x2 += (v2);                                              \
-} while (/*CONSTCOND*/0)
-
-#define        if_statinc_ref(r, x)    if_statinc((ifnet_t *)(r), x)
-#define        if_statdec_ref(r, x)    if_statdec((ifnet_t *)(r), x)
-#define        if_statadd_ref(r, x, v) if_statadd((ifnet_t *)(r), x, v)
-#define        if_statsub_ref(r, x, v) if_statsub((ifnet_t *)(r), x, v)
+int    if_stats_init(ifnet_t *);
+void   if_stats_fini(ifnet_t *);
+void   if_stats_to_if_data(ifnet_t *, struct if_data *, bool);
 
 #endif /* _KERNEL */
 
-#endif /* __IF_STATS_PERCPU */
-
-#ifdef _KERNEL
-int    if_stats_init(ifnet_t *);
-void   if_stats_fini(ifnet_t *);
-void   if_stats_to_if_data(ifnet_t *, struct if_data *, bool);
-#endif /* _KERNEL */
-
 #endif /* !_NET_IF_STATS_H_ */



Home | Main Index | Thread Index | Old Index