ipv6: reduce per device ICMP mib sizes
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 19 May 2011 01:14:23 +0000 (01:14 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 May 2011 20:21:22 +0000 (16:21 -0400)
commitbe281e554e2a4cf2478df7a8b8926c89454bccfa
tree7e80e5eb0aa76efcdb39a06413ff9e0ae73de35a
parent75e308c894c4a5e47c005b8e821ae5f539ad2ef3
ipv6: reduce per device ICMP mib sizes

ipv6 has per device ICMP SNMP counters, taking too much space because
they use percpu storage.

needed size per device is :
(512+4)*sizeof(long)*number_of_possible_cpus*2

On a 32bit kernel, 16 possible cpus, this wastes more than 64kbytes of
memory per ipv6 enabled network device, taken in vmalloc pool.

Since ICMP messages are rare, just use shared counters (atomic_long_t)

Per network space ICMP counters are still using percpu memory, we might
also convert them to shared counters in a future patch.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
CC: Denys Fedoryshchenko <denys@visp.net.lb>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/if_inet6.h
include/net/ipv6.h
include/net/snmp.h
net/ipv6/addrconf.c
net/ipv6/proc.c