From: Patrick McHardy <kaber@trash.net>
To: Thomas Graf <tgraf@suug.ch>
Cc: David Laight <David.Laight@ACULAB.COM>,
"davem@davemloft.net" <davem@davemloft.net>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"paulmck@linux.vnet.ibm.com" <paulmck@linux.vnet.ibm.com>,
"edumazet@google.com" <edumazet@google.com>,
"john.r.fastabend@intel.com" <john.r.fastabend@intel.com>,
"josh@joshtriplett.org" <josh@joshtriplett.org>,
"netfilter-devel@vger.kernel.org"
<netfilter-devel@vger.kernel.org>
Subject: Re: [PATCH 7/9] rhashtable: Per bucket locks & deferred expansion/shrinking
Date: Fri, 16 Jan 2015 22:07:36 +0000 [thread overview]
Message-ID: <20150116220735.GA12614@acer.localdomain> (raw)
In-Reply-To: <20150116213605.GE20315@casper.infradead.org>
On 16.01, Thomas Graf wrote:
> On 01/16/15 at 07:35pm, Patrick McHardy wrote:
> > On 16.01, Thomas Graf wrote:
> > > Right,but that's a Netlink dump issue and not specific to rhashtable.
> >
> > Well, rhashtable (or generally resizing) will make it a lot worse.
> > Usually we at worst miss entries which were added during the dump,
> > which is made up by the notifications.
> >
> > With resizing we might miss anything, its completely undeterministic.
> >
> > > Putting the sequence number check in place should be sufficient
> > > for sets, right?
> >
> > I don't see how. The problem is that the ordering of the hash changes
> > and it will skip different entries than those that have already been
> > dumped.
>
> Since an resize can only be triggered through insert/remove you
> simply bump a sequence number when you insert/remove and have
> userspace restart the dump when NLM_F_DUMP_INTR is set.
I'm afraid that's not good enough. The resize operation is deferred,
so even if userspace does not perform an operation after starting
the dump, the hash might change.
We can obviously work around that by incrementing a generation
counter in rhashtable. The main problem I see is that with something
very actively changing the ruleset, we might never complete a dump.
Dumps are usually rare, I think its preferrable to defer rehashing.
next prev parent reply other threads:[~2015-01-16 22:07 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1418647641.git.tgraf@suug.ch>
2014-12-15 12:51 ` [PATCH 1/9] rhashtable: Do hashing inside of rhashtable_lookup_compare() Thomas Graf
2014-12-15 12:51 ` [PATCH 5/9] nft_hash: Remove rhashtable_remove_pprev() Thomas Graf
2014-12-15 12:51 ` [PATCH 7/9] rhashtable: Per bucket locks & deferred expansion/shrinking Thomas Graf
2015-01-16 15:34 ` Patrick McHardy
2015-01-16 15:58 ` Thomas Graf
2015-01-16 16:03 ` Patrick McHardy
2015-01-16 16:15 ` Thomas Graf
2015-01-16 16:32 ` Patrick McHardy
2015-01-16 16:38 ` Thomas Graf
2015-01-16 16:51 ` Patrick McHardy
2015-01-16 16:43 ` David Laight
2015-01-16 16:53 ` Thomas Graf
2015-01-16 18:36 ` Patrick McHardy
2015-01-16 19:18 ` Thomas Graf
2015-01-16 19:35 ` Patrick McHardy
2015-01-16 20:46 ` Pablo Neira Ayuso
2015-01-16 20:53 ` Patrick McHardy
2015-01-19 9:01 ` Paul E. McKenney
2015-01-21 5:23 ` Herbert Xu
2015-01-21 5:29 ` Paul E. McKenney
2015-01-21 5:30 ` Herbert Xu
2015-01-21 5:36 ` Paul E. McKenney
2015-01-16 20:49 ` Herbert Xu
2015-01-16 21:31 ` Patrick McHardy
2015-01-17 0:33 ` Herbert Xu
2015-01-17 8:06 ` Patrick McHardy
2015-01-17 9:32 ` Herbert Xu
2015-01-17 9:51 ` Patrick McHardy
2015-01-17 10:13 ` Herbert Xu
2015-01-17 11:56 ` Patrick McHardy
2015-01-16 21:36 ` Thomas Graf
2015-01-16 22:07 ` Patrick McHardy [this message]
2015-01-16 23:34 ` Thomas Graf
2015-01-17 8:02 ` Patrick McHardy
2015-01-19 12:58 ` Thomas Graf
2015-01-19 9:45 ` David Laight
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=20150116220735.GA12614@acer.localdomain \
--to=kaber@trash.net \
--cc=David.Laight@ACULAB.COM \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=herbert@gondor.apana.org.au \
--cc=john.r.fastabend@intel.com \
--cc=josh@joshtriplett.org \
--cc=netdev@vger.kernel.org \
--cc=netfilter-devel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=tgraf@suug.ch \
/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).