Module Name: src Committed By: thorpej Date: Fri Feb 14 22:04:12 UTC 2020
Modified Files: src/sys/net: if.h if_stats.c if_stats.h Log Message: Remove the conditional __IF_STATS_PERCPU. To generate a diff of this commit: cvs rdiff -u -r1.281 -r1.282 src/sys/net/if.h cvs rdiff -u -r1.2 -r1.3 src/sys/net/if_stats.c cvs rdiff -u -r1.1 -r1.2 src/sys/net/if_stats.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/net/if.h diff -u src/sys/net/if.h:1.281 src/sys/net/if.h:1.282 --- src/sys/net/if.h:1.281 Thu Feb 6 23:30:19 2020 +++ src/sys/net/if.h Fri Feb 14 22:04:12 2020 @@ -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 @@ typedef struct ifnet { 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 @@ typedef struct ifnet { #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 @@ typedef struct ifnet { #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 */ Index: src/sys/net/if_stats.c diff -u src/sys/net/if_stats.c:1.2 src/sys/net/if_stats.c:1.3 --- src/sys/net/if_stats.c:1.2 Fri Feb 7 12:35:33 2020 +++ src/sys/net/if_stats.c Fri Feb 14 22:04:12 2020 @@ -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 @@ __KERNEL_RCSID(0, "$NetBSD: if_stats.c,v 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 @@ if_stats_init(ifnet_t * const ifp) 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 @@ if_stats_to_if_data(ifnet_t * const ifp, 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 */ Index: src/sys/net/if_stats.h diff -u src/sys/net/if_stats.h:1.1 src/sys/net/if_stats.h:1.2 --- src/sys/net/if_stats.h:1.1 Wed Jan 29 03:16:28 2020 +++ src/sys/net/if_stats.h Fri Feb 14 22:04:12 2020 @@ -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 @@ if_statsub_ref(net_stat_ref_t nsr, if_st _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) - -#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_ */