From: David Miller <davem@davemloft.net>
To: mkubecek@suse.cz
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
kuznet@ms2.inr.ac.ru, jmorris@namei.org, yoshfuji@linux-ipv6.org,
kaber@trash.net, hannes@stressinduktion.org, kafai@fb.com,
xiyou.wangcong@gmail.com
Subject: Re: [PATCH net-next v2 0/3] ipv6: per netns FIB6 walkers and garbage collector
Date: Tue, 08 Mar 2016 15:17:13 -0500 (EST) [thread overview]
Message-ID: <20160308.151713.644429771194150736.davem@davemloft.net> (raw)
In-Reply-To: <cover.1457443526.git.mkubecek@suse.cz>
From: Michal Kubecek <mkubecek@suse.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.
prev parent reply other threads:[~2016-03-08 20:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-08 13:44 [PATCH net-next v2 0/3] ipv6: per netns FIB6 walkers and garbage collector Michal Kubecek
2016-03-08 13:44 ` [PATCH net-next v2 1/3] ipv6: replace global gc_args with local variable Michal Kubecek
2016-03-08 18:25 ` Cong Wang
2016-03-08 13:44 ` [PATCH net-next v2 2/3] ipv6: per netns fib6 walkers Michal Kubecek
2016-03-08 18:34 ` Cong Wang
2016-03-08 13:44 ` [PATCH net-next v2 3/3] ipv6: per netns FIB garbage collection Michal Kubecek
2016-03-08 18:36 ` Cong Wang
2016-03-08 20:17 ` David Miller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160308.151713.644429771194150736.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=hannes@stressinduktion.org \
--cc=jmorris@namei.org \
--cc=kaber@trash.net \
--cc=kafai@fb.com \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
--cc=mkubecek@suse.cz \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
--cc=yoshfuji@linux-ipv6.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).