[PATCH] net: avoid reloads in SNMP_UPD_PO_STATS

Subsystems: networking [general], the rest

STALE5108d

2 messages, 2 authors, 2012-08-06 · open the first message on its own page

[PATCH] net: avoid reloads in SNMP_UPD_PO_STATS

From: Eric Dumazet <hidden>
Date: 2012-08-05 06:26:18

From: Eric Dumazet <edumazet@google.com>

Avoid two instructions to reload dev->nd_net->mib.ip_statistics pointer,
unsing a temp variable, in ip_rcv(), ip_output() paths for example.

Signed-off-by: Eric Dumazet <edumazet@google.com>
---
 include/net/snmp.h |   10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/include/net/snmp.h b/include/net/snmp.h
index 0147b90..7159626 100644
--- a/include/net/snmp.h
+++ b/include/net/snmp.h
@@ -154,13 +154,15 @@ struct linux_xfrm_mib {
  */
 #define SNMP_UPD_PO_STATS(mib, basefield, addend)	\
 	do { \
-		this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\
-		this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\
+		__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\
+		this_cpu_inc(ptr[basefield##PKTS]);		\
+		this_cpu_add(ptr[basefield##OCTETS], addend);	\
 	} while (0)
 #define SNMP_UPD_PO_STATS_BH(mib, basefield, addend)	\
 	do { \
-		__this_cpu_inc(mib[0]->mibs[basefield##PKTS]);		\
-		__this_cpu_add(mib[0]->mibs[basefield##OCTETS], addend);	\
+		__typeof__(*mib[0]->mibs) *ptr = mib[0]->mibs;	\
+		__this_cpu_inc(ptr[basefield##PKTS]);		\
+		__this_cpu_add(ptr[basefield##OCTETS], addend);	\
 	} while (0)
 
 

Re: [PATCH] net: avoid reloads in SNMP_UPD_PO_STATS

From: David Miller <davem@davemloft.net>
Date: 2012-08-06 20:40:58

From: Eric Dumazet <redacted>
Date: Sun, 05 Aug 2012 08:26:13 +0200
From: Eric Dumazet <edumazet@google.com>

Avoid two instructions to reload dev->nd_net->mib.ip_statistics pointer,
unsing a temp variable, in ip_rcv(), ip_output() paths for example.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Applied to net-next
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help