ipv4: take rt_uncached_lock only if needed
authorEric Dumazet <edumazet@google.com>
Fri, 24 Aug 2012 05:40:47 +0000 (05:40 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Aug 2012 15:47:48 +0000 (11:47 -0400)
commit78df76a065ae3b5dbcb9a29912adc02f697de498
tree5b9ab36790a2e0101a15d70bdf41b066ce0e55aa
parenta0dfb2634e5671770f598cda08002d8cda66ac77
ipv4: take rt_uncached_lock only if needed

Multicast traffic allocates dst with DST_NOCACHE, but dst is
not inserted into rt_uncached_list.

This slowdown multicast workloads on SMP because rt_uncached_lock is
contended.

Change the test before taking the lock to actually check the dst
was inserted into rt_uncached_list.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/route.c