netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net v2 0/2] ipv6: prevent fib6_run_gc() contention
@ 2013-08-01  8:04 Michal Kubecek
  2013-08-01  8:04 ` [PATCH net v2 1/2] " Michal Kubecek
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Michal Kubecek @ 2013-08-01  8:04 UTC (permalink / raw)
  To: David S. Miller
  Cc: Eric Dumazet, netdev, Alexey Kuznetsov, James Morris,
	Hideaki YOSHIFUJI, Patrick McHardy

On a high-traffic router with many processors and many IPv6 dst entries,
soft lockup in fib6_run_gc() can occur when number of entries reaches
gc_thresh. Prevent this by not waiting for the lock if garbage collector
is already running as we would only run it again as soon as it finished.

v2: as suggested by Eric Dumazet, move update of ip6_rt_last_gc into
    fib6_run_gc() so that it reflects every run of garbage collector
    rather than only those via ip6_dst_gc()

Michal Kubecek (2):
  ipv6: prevent fib6_run_gc() contention
  ipv6: update ip6_rt_last_gc every time GC is run

 include/net/ip6_fib.h |  2 +-
 net/ipv6/ip6_fib.c    | 25 +++++++++++++------------
 net/ipv6/ndisc.c      |  4 ++--
 net/ipv6/route.c      |  8 +++-----
 4 files changed, 19 insertions(+), 20 deletions(-)

-- 
1.8.1.4

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-08-01 21:18 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-08-01  8:04 [PATCH net v2 0/2] ipv6: prevent fib6_run_gc() contention Michal Kubecek
2013-08-01  8:04 ` [PATCH net v2 1/2] " Michal Kubecek
2013-08-01  8:04 ` [PATCH net v2 2/2] ipv6: update ip6_rt_last_gc every time GC is run Michal Kubecek
2013-08-01 21:18 ` [PATCH net v2 0/2] ipv6: prevent fib6_run_gc() contention David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).