kernel: compile out SNMP MIB related counting if debloat-proc is active - improves network stack performance
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 48239
This commit is contained in:
parent
1133101bc8
commit
7f11532c58
3 changed files with 132 additions and 0 deletions
|
@ -339,3 +339,47 @@
|
|||
remove_proc_entry("dev", net->proc_net);
|
||||
}
|
||||
|
||||
--- a/include/net/snmp.h
|
||||
+++ b/include/net/snmp.h
|
||||
@@ -123,6 +123,30 @@ struct linux_xfrm_mib {
|
||||
#define DECLARE_SNMP_STAT(type, name) \
|
||||
extern __typeof__(type) __percpu *name
|
||||
|
||||
+#ifdef CONFIG_PROC_STRIPPED
|
||||
+#define SNMP_INC_STATS_BH(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_USER(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_DEC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_BH(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_USER(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+
|
||||
+#else
|
||||
+
|
||||
#define SNMP_INC_STATS_BH(mib, field) \
|
||||
__this_cpu_inc(mib->mibs[field])
|
||||
|
||||
@@ -159,8 +183,9 @@ struct linux_xfrm_mib {
|
||||
__this_cpu_add(ptr[basefield##OCTETS], addend); \
|
||||
} while (0)
|
||||
|
||||
+#endif
|
||||
|
||||
-#if BITS_PER_LONG==32
|
||||
+#if (BITS_PER_LONG==32) && !defined(CONFIG_PROC_STRIPPED)
|
||||
|
||||
#define SNMP_ADD_STATS64_BH(mib, field, addend) \
|
||||
do { \
|
||||
|
|
|
@ -339,3 +339,47 @@
|
|||
remove_proc_entry("dev", net->proc_net);
|
||||
}
|
||||
|
||||
--- a/include/net/snmp.h
|
||||
+++ b/include/net/snmp.h
|
||||
@@ -123,6 +123,30 @@ struct linux_xfrm_mib {
|
||||
#define DECLARE_SNMP_STAT(type, name) \
|
||||
extern __typeof__(type) __percpu *name
|
||||
|
||||
+#ifdef CONFIG_PROC_STRIPPED
|
||||
+#define SNMP_INC_STATS_BH(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_USER(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_DEC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_BH(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_USER(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+
|
||||
+#else
|
||||
+
|
||||
#define SNMP_INC_STATS_BH(mib, field) \
|
||||
__this_cpu_inc(mib->mibs[field])
|
||||
|
||||
@@ -159,8 +183,9 @@ struct linux_xfrm_mib {
|
||||
__this_cpu_add(ptr[basefield##OCTETS], addend); \
|
||||
} while (0)
|
||||
|
||||
+#endif
|
||||
|
||||
-#if BITS_PER_LONG==32
|
||||
+#if (BITS_PER_LONG==32) && !defined(CONFIG_PROC_STRIPPED)
|
||||
|
||||
#define SNMP_ADD_STATS64_BH(mib, field, addend) \
|
||||
do { \
|
||||
|
|
|
@ -339,3 +339,47 @@
|
|||
remove_proc_entry("dev", net->proc_net);
|
||||
}
|
||||
|
||||
--- a/include/net/snmp.h
|
||||
+++ b/include/net/snmp.h
|
||||
@@ -123,6 +123,30 @@ struct linux_xfrm_mib {
|
||||
#define DECLARE_SNMP_STAT(type, name) \
|
||||
extern __typeof__(type) __percpu *name
|
||||
|
||||
+#ifdef CONFIG_PROC_STRIPPED
|
||||
+#define SNMP_INC_STATS_BH(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_USER(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS_ATOMIC_LONG(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_INC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_DEC_STATS(mib, field) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_BH(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS_USER(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_ADD_STATS(mib, field, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+#define SNMP_UPD_PO_STATS_BH(mib, basefield, addend) \
|
||||
+ do { (void) mib->mibs[0]; } while(0)
|
||||
+
|
||||
+#else
|
||||
+
|
||||
#define SNMP_INC_STATS_BH(mib, field) \
|
||||
__this_cpu_inc(mib->mibs[field])
|
||||
|
||||
@@ -159,8 +183,9 @@ struct linux_xfrm_mib {
|
||||
__this_cpu_add(ptr[basefield##OCTETS], addend); \
|
||||
} while (0)
|
||||
|
||||
+#endif
|
||||
|
||||
-#if BITS_PER_LONG==32
|
||||
+#if (BITS_PER_LONG==32) && !defined(CONFIG_PROC_STRIPPED)
|
||||
|
||||
#define SNMP_ADD_STATS64_BH(mib, field, addend) \
|
||||
do { \
|
||||
|
|
Loading…
Reference in a new issue