Author: nbd
Date: 2016-01-15 11:47:14 +0100 (Fri, 15 Jan 2016)
New Revision: 48239

Modified:
   trunk/target/linux/generic/patches-4.1/902-debloat_proc.patch
   trunk/target/linux/generic/patches-4.3/902-debloat_proc.patch
   trunk/target/linux/generic/patches-4.4/902-debloat_proc.patch
Log:
kernel: compile out SNMP MIB related counting if debloat-proc is active - 
improves network stack performance

Signed-off-by: Felix Fietkau <[email protected]>

Modified: trunk/target/linux/generic/patches-4.1/902-debloat_proc.patch
===================================================================
--- trunk/target/linux/generic/patches-4.1/902-debloat_proc.patch       
2016-01-14 14:27:23 UTC (rev 48238)
+++ trunk/target/linux/generic/patches-4.1/902-debloat_proc.patch       
2016-01-15 10:47:14 UTC (rev 48239)
@@ -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 {                                                            \

Modified: trunk/target/linux/generic/patches-4.3/902-debloat_proc.patch
===================================================================
--- trunk/target/linux/generic/patches-4.3/902-debloat_proc.patch       
2016-01-14 14:27:23 UTC (rev 48238)
+++ trunk/target/linux/generic/patches-4.3/902-debloat_proc.patch       
2016-01-15 10:47:14 UTC (rev 48239)
@@ -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 {                                                            \

Modified: trunk/target/linux/generic/patches-4.4/902-debloat_proc.patch
===================================================================
--- trunk/target/linux/generic/patches-4.4/902-debloat_proc.patch       
2016-01-14 14:27:23 UTC (rev 48238)
+++ trunk/target/linux/generic/patches-4.4/902-debloat_proc.patch       
2016-01-15 10:47:14 UTC (rev 48239)
@@ -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 {                                                            \
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to