net: snmp: kill various STATS_USER() helpers
In the old days (before linux-3.0), SNMP counters were duplicated,
one for user context, and one for BH context.
After commit 8f0ea0fe3a ("snmp: reduce percpu needs by 50%")
we have a single copy, and what really matters is preemption being
enabled or disabled, since we use this_cpu_inc() or __this_cpu_inc()
respectively.
We therefore kill SNMP_INC_STATS_USER(), SNMP_ADD_STATS_USER(),
NET_INC_STATS_USER(), NET_ADD_STATS_USER(), SCTP_INC_STATS_USER(),
SNMP_INC_STATS64_USER(), SNMP_ADD_STATS64_USER(), TCP_ADD_STATS_USER(),
UDP_INC_STATS_USER(), UDP6_INC_STATS_USER(), and XFRM_INC_STATS_USER()
Following patches will rename __BH helpers to make clear their
usage is not tied to BH being disabled.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2995aea5b6
commit
6aef70a851
@@ -194,10 +194,8 @@ void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb,
|
||||
#define IP_UPD_PO_STATS_BH(net, field, val) SNMP_UPD_PO_STATS64_BH((net)->mib.ip_statistics, field, val)
|
||||
#define NET_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.net_statistics, field)
|
||||
#define NET_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.net_statistics, field)
|
||||
#define NET_INC_STATS_USER(net, field) SNMP_INC_STATS_USER((net)->mib.net_statistics, field)
|
||||
#define NET_ADD_STATS(net, field, adnd) SNMP_ADD_STATS((net)->mib.net_statistics, field, adnd)
|
||||
#define NET_ADD_STATS_BH(net, field, adnd) SNMP_ADD_STATS_BH((net)->mib.net_statistics, field, adnd)
|
||||
#define NET_ADD_STATS_USER(net, field, adnd) SNMP_ADD_STATS_USER((net)->mib.net_statistics, field, adnd)
|
||||
|
||||
u64 snmp_get_cpu_field(void __percpu *mib, int cpu, int offct);
|
||||
unsigned long snmp_fold_field(void __percpu *mib, int offt);
|
||||
|
||||
@@ -207,7 +207,6 @@ extern int sysctl_sctp_wmem[3];
|
||||
/* SCTP SNMP MIB stats handlers */
|
||||
#define SCTP_INC_STATS(net, field) SNMP_INC_STATS((net)->sctp.sctp_statistics, field)
|
||||
#define SCTP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->sctp.sctp_statistics, field)
|
||||
#define SCTP_INC_STATS_USER(net, field) SNMP_INC_STATS_USER((net)->sctp.sctp_statistics, field)
|
||||
#define SCTP_DEC_STATS(net, field) SNMP_DEC_STATS((net)->sctp.sctp_statistics, field)
|
||||
|
||||
/* sctp mib definitions */
|
||||
|
||||
+5
-17
@@ -126,9 +126,6 @@ struct linux_xfrm_mib {
|
||||
#define SNMP_INC_STATS_BH(mib, field) \
|
||||
__this_cpu_inc(mib->mibs[field])
|
||||
|
||||
#define SNMP_INC_STATS_USER(mib, field) \
|
||||
this_cpu_inc(mib->mibs[field])
|
||||
|
||||
#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
|
||||
atomic_long_inc(&mib->mibs[field])
|
||||
|
||||
@@ -141,9 +138,6 @@ struct linux_xfrm_mib {
|
||||
#define SNMP_ADD_STATS_BH(mib, field, addend) \
|
||||
__this_cpu_add(mib->mibs[field], addend)
|
||||
|
||||
#define SNMP_ADD_STATS_USER(mib, field, addend) \
|
||||
this_cpu_add(mib->mibs[field], addend)
|
||||
|
||||
#define SNMP_ADD_STATS(mib, field, addend) \
|
||||
this_cpu_add(mib->mibs[field], addend)
|
||||
#define SNMP_UPD_PO_STATS(mib, basefield, addend) \
|
||||
@@ -170,18 +164,14 @@ struct linux_xfrm_mib {
|
||||
u64_stats_update_end(&ptr->syncp); \
|
||||
} while (0)
|
||||
|
||||
#define SNMP_ADD_STATS64_USER(mib, field, addend) \
|
||||
#define SNMP_ADD_STATS64(mib, field, addend) \
|
||||
do { \
|
||||
local_bh_disable(); \
|
||||
preempt_disable(); \
|
||||
SNMP_ADD_STATS64_BH(mib, field, addend); \
|
||||
local_bh_enable(); \
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
|
||||
#define SNMP_ADD_STATS64(mib, field, addend) \
|
||||
SNMP_ADD_STATS64_USER(mib, field, addend)
|
||||
|
||||
#define SNMP_INC_STATS64_BH(mib, field) SNMP_ADD_STATS64_BH(mib, field, 1)
|
||||
#define SNMP_INC_STATS64_USER(mib, field) SNMP_ADD_STATS64_USER(mib, field, 1)
|
||||
#define SNMP_INC_STATS64(mib, field) SNMP_ADD_STATS64(mib, field, 1)
|
||||
#define SNMP_UPD_PO_STATS64_BH(mib, basefield, addend) \
|
||||
do { \
|
||||
@@ -194,17 +184,15 @@ struct linux_xfrm_mib {
|
||||
} while (0)
|
||||
#define SNMP_UPD_PO_STATS64(mib, basefield, addend) \
|
||||
do { \
|
||||
local_bh_disable(); \
|
||||
preempt_disable(); \
|
||||
SNMP_UPD_PO_STATS64_BH(mib, basefield, addend); \
|
||||
local_bh_enable(); \
|
||||
preempt_enable(); \
|
||||
} while (0)
|
||||
#else
|
||||
#define SNMP_INC_STATS64_BH(mib, field) SNMP_INC_STATS_BH(mib, field)
|
||||
#define SNMP_INC_STATS64_USER(mib, field) SNMP_INC_STATS_USER(mib, field)
|
||||
#define SNMP_INC_STATS64(mib, field) SNMP_INC_STATS(mib, field)
|
||||
#define SNMP_DEC_STATS64(mib, field) SNMP_DEC_STATS(mib, field)
|
||||
#define SNMP_ADD_STATS64_BH(mib, field, addend) SNMP_ADD_STATS_BH(mib, field, addend)
|
||||
#define SNMP_ADD_STATS64_USER(mib, field, addend) SNMP_ADD_STATS_USER(mib, field, addend)
|
||||
#define SNMP_ADD_STATS64(mib, field, addend) SNMP_ADD_STATS(mib, field, addend)
|
||||
#define SNMP_UPD_PO_STATS64(mib, basefield, addend) SNMP_UPD_PO_STATS(mib, basefield, addend)
|
||||
#define SNMP_UPD_PO_STATS64_BH(mib, basefield, addend) SNMP_UPD_PO_STATS_BH(mib, basefield, addend)
|
||||
|
||||
+4
-5
@@ -334,7 +334,6 @@ extern struct proto tcp_prot;
|
||||
#define TCP_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.tcp_statistics, field)
|
||||
#define TCP_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.tcp_statistics, field)
|
||||
#define TCP_DEC_STATS(net, field) SNMP_DEC_STATS((net)->mib.tcp_statistics, field)
|
||||
#define TCP_ADD_STATS_USER(net, field, val) SNMP_ADD_STATS_USER((net)->mib.tcp_statistics, field, val)
|
||||
#define TCP_ADD_STATS(net, field, val) SNMP_ADD_STATS((net)->mib.tcp_statistics, field, val)
|
||||
|
||||
void tcp_tasklet_init(void);
|
||||
@@ -1298,10 +1297,10 @@ bool tcp_oow_rate_limited(struct net *net, const struct sk_buff *skb,
|
||||
static inline void tcp_mib_init(struct net *net)
|
||||
{
|
||||
/* See RFC 2012 */
|
||||
TCP_ADD_STATS_USER(net, TCP_MIB_RTOALGORITHM, 1);
|
||||
TCP_ADD_STATS_USER(net, TCP_MIB_RTOMIN, TCP_RTO_MIN*1000/HZ);
|
||||
TCP_ADD_STATS_USER(net, TCP_MIB_RTOMAX, TCP_RTO_MAX*1000/HZ);
|
||||
TCP_ADD_STATS_USER(net, TCP_MIB_MAXCONN, -1);
|
||||
TCP_ADD_STATS(net, TCP_MIB_RTOALGORITHM, 1);
|
||||
TCP_ADD_STATS(net, TCP_MIB_RTOMIN, TCP_RTO_MIN*1000/HZ);
|
||||
TCP_ADD_STATS(net, TCP_MIB_RTOMAX, TCP_RTO_MAX*1000/HZ);
|
||||
TCP_ADD_STATS(net, TCP_MIB_MAXCONN, -1);
|
||||
}
|
||||
|
||||
/* from STCP */
|
||||
|
||||
+7
-7
@@ -289,20 +289,20 @@ struct sock *udp6_lib_lookup_skb(struct sk_buff *skb,
|
||||
/*
|
||||
* SNMP statistics for UDP and UDP-Lite
|
||||
*/
|
||||
#define UDP_INC_STATS_USER(net, field, is_udplite) do { \
|
||||
if (is_udplite) SNMP_INC_STATS_USER((net)->mib.udplite_statistics, field); \
|
||||
else SNMP_INC_STATS_USER((net)->mib.udp_statistics, field); } while(0)
|
||||
#define UDP_INC_STATS(net, field, is_udplite) do { \
|
||||
if (is_udplite) SNMP_INC_STATS((net)->mib.udplite_statistics, field); \
|
||||
else SNMP_INC_STATS((net)->mib.udp_statistics, field); } while(0)
|
||||
#define UDP_INC_STATS_BH(net, field, is_udplite) do { \
|
||||
if (is_udplite) SNMP_INC_STATS_BH((net)->mib.udplite_statistics, field); \
|
||||
else SNMP_INC_STATS_BH((net)->mib.udp_statistics, field); } while(0)
|
||||
|
||||
#define UDP6_INC_STATS_BH(net, field, is_udplite) do { \
|
||||
#define UDP6_INC_STATS_BH(net, field, is_udplite) do { \
|
||||
if (is_udplite) SNMP_INC_STATS_BH((net)->mib.udplite_stats_in6, field);\
|
||||
else SNMP_INC_STATS_BH((net)->mib.udp_stats_in6, field); \
|
||||
} while(0)
|
||||
#define UDP6_INC_STATS_USER(net, field, __lite) do { \
|
||||
if (__lite) SNMP_INC_STATS_USER((net)->mib.udplite_stats_in6, field); \
|
||||
else SNMP_INC_STATS_USER((net)->mib.udp_stats_in6, field); \
|
||||
#define UDP6_INC_STATS(net, field, __lite) do { \
|
||||
if (__lite) SNMP_INC_STATS((net)->mib.udplite_stats_in6, field); \
|
||||
else SNMP_INC_STATS((net)->mib.udp_stats_in6, field); \
|
||||
} while(0)
|
||||
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
|
||||
@@ -46,11 +46,9 @@
|
||||
#ifdef CONFIG_XFRM_STATISTICS
|
||||
#define XFRM_INC_STATS(net, field) SNMP_INC_STATS((net)->mib.xfrm_statistics, field)
|
||||
#define XFRM_INC_STATS_BH(net, field) SNMP_INC_STATS_BH((net)->mib.xfrm_statistics, field)
|
||||
#define XFRM_INC_STATS_USER(net, field) SNMP_INC_STATS_USER((net)-mib.xfrm_statistics, field)
|
||||
#else
|
||||
#define XFRM_INC_STATS(net, field) ((void)(net))
|
||||
#define XFRM_INC_STATS_BH(net, field) ((void)(net))
|
||||
#define XFRM_INC_STATS_USER(net, field) ((void)(net))
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user