]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: Avoid rt6_probe() taking writer lock in the fast path
authorMartin KaFai Lau <kafai@fb.com>
Fri, 24 Jul 2015 16:57:43 +0000 (09:57 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 27 Jul 2015 08:08:25 +0000 (01:08 -0700)
commitb4764b00cf4465d7f5daf15ea79873dba2dab203
treef1ff57e6fb696f41ab3e48c4b07fbcc539d52a33
parentbb148ab0998d8339812bd6ac4e8c1ece8afead13
ipv6: Avoid rt6_probe() taking writer lock in the fast path

The patch checks neigh->nud_state before acquiring the writer lock.
Note that rt6_probe() is only used in CONFIG_IPV6_ROUTER_PREF.

40 udpflood processes and a /64 gateway route are used.
The gateway has NUD_PERMANENT.  Each of them is run for 30s.
At the end, the total number of finished sendto():

Before: 55M
After: 95M

Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
CC: Julian Anastasov <ja@ssi.bg>
CC: YOSHIFUJI Hideaki <hideaki.yoshifuji@miraclelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c