[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20160308.151713.644429771194150736.davem@davemloft.net>
Date: Tue, 08 Mar 2016 15:17:13 -0500 (EST)
From: David Miller <davem@...emloft.net>
To: mkubecek@...e.cz
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org,
kuznet@....inr.ac.ru, jmorris@...ei.org, yoshfuji@...ux-ipv6.org,
kaber@...sh.net, hannes@...essinduktion.org, kafai@...com,
xiyou.wangcong@...il.com
Subject: Re: [PATCH net-next v2 0/3] ipv6: per netns FIB6 walkers and
garbage collector
From: Michal Kubecek <mkubecek@...e.cz>
Date: Tue, 8 Mar 2016 14:44:15 +0100 (CET)
> Commit 2ac3ac8f86f2 ("ipv6: prevent fib6_run_gc() contention") reduced
> the risk of contention on FIB6 garbage collector lock on systems with
> many CPUs. However, one of our customers can still observe heavy
> contention on fib6_gc_lock which can even trigger the soft lockup
> detector.
>
> This is caused by garbage collector running in forced mode from a timer.
> While there is one timer per network namespace, the instances of
> fib6_run_gc() running from them are protected by one global spinlock so
> that only one garbage collector can run at any moment and other
> namespaces have to wait. As most relevant data structures are separated
> per netns, there is little reason for garbage collectors blocking each
> other.
>
> Similar problem exists for walkers: changes in one tree do not need to
> adjust (and block) walkers traversing FIB trees in other namespaces.
>
> This series separates both the walkers infrastructure and garbage
> collector so that they work independently in network namespaces.
>
> v2: get rid of ifdef in ipv6_route_seq_setup_walk(), pass net from
> callers instead
Series applied, thanks.
Powered by blists - more mailing lists