netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hannes Frederic Sowa <hannes@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Marcelo Ricardo Leitner <mleitner@redhat.com>,
	davem@davemloft.net, netdev@vger.kernel.org
Subject: Re: [PATCH stable 3.4 1/2] ipv4: move route garbage collector to work queue
Date: Tue, 12 Aug 2014 23:41:32 +0200	[thread overview]
Message-ID: <1407879692.16087.5.camel@localhost> (raw)
In-Reply-To: <1407875003.6804.0.camel@edumazet-glaptop2.roam.corp.google.com>

Hi Eric,

On Di, 2014-08-12 at 13:23 -0700, Eric Dumazet wrote:
> On Tue, 2014-08-12 at 20:50 +0200, Hannes Frederic Sowa wrote:
> > On Mo, 2014-08-11 at 19:41 -0300, Marcelo Ricardo Leitner wrote:
> > > Currently the route garbage collector gets called by dst_alloc() if it
> > > have more entries than the threshold. But it's an expensive call, that
> > > don't really need to be done by then.
> > > 
> > > Another issue with current way is that it allows running the garbage
> > > collector with the same start parameters on multiple CPUs at once, which
> > > is not optimal. A system may even soft lockup if the cache is big enough
> > > as the garbage collectors will be fighting over the hash lock entries.
> > > 
> > > This patch thus moves the garbage collector to run asynchronously on a
> > > work queue, much similar to how rt_expire_check runs.
> > > 
> > > There is one condition left that allows multiple executions, which is
> > > handled by the next patch.
> > > 
> > > Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
> > > Cc: Hannes Frederic Sowa <hannes@redhat.com>
> > 
> > Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
> 
> 
> This does not look as stable material.

We hesitated at first, too, to send those out.

We had a machine being brought down by production traffic while using
TPROXY. The routing cache, while still having a relatively good hit
ratio, was filled with combinations of source and destination addresses.
Multiple GCs running and trying to grab the same per-chain spin_lock
caused a complete lockdown of the machine. That's why we submitted those
patches for review in the end.

> One can always disable route cache in 3.4 kernels

Sure, but we didn't like the fact that it is possible to bring down the
machine in the first place.

Thanks,
Hannes

  reply	other threads:[~2014-08-12 21:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-11 22:41 [PATCH stable 3.4 1/2] ipv4: move route garbage collector to work queue Marcelo Ricardo Leitner
2014-08-11 22:41 ` [PATCH stable 3.4 2/2] ipv4: avoid parallel route cache gc executions Marcelo Ricardo Leitner
2014-08-12 18:50   ` Hannes Frederic Sowa
2014-08-12 18:50 ` [PATCH stable 3.4 1/2] ipv4: move route garbage collector to work queue Hannes Frederic Sowa
2014-08-12 20:23   ` Eric Dumazet
2014-08-12 21:41     ` Hannes Frederic Sowa [this message]
2014-08-12 22:42       ` David Miller
2014-08-12 23:11         ` Hannes Frederic Sowa
2014-08-13  0:46           ` David Miller
2014-08-13  1:50             ` Hannes Frederic Sowa

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=1407879692.16087.5.camel@localhost \
    --to=hannes@redhat.com \
    --cc=davem@davemloft.net \
    --cc=eric.dumazet@gmail.com \
    --cc=mleitner@redhat.com \
    --cc=netdev@vger.kernel.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).