public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Thomas Graf <tgraf@suug.ch>,
	David Laight <David.Laight@ACULAB.COM>,
	"davem@davemloft.net" <davem@davemloft.net>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	"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: Sat, 17 Jan 2015 08:06:21 +0000	[thread overview]
Message-ID: <20150117080621.GB3968@acer.localdomain> (raw)
In-Reply-To: <20150117003340.GA16374@gondor.apana.org.au>

On 17.01, Herbert Xu wrote:
> On Fri, Jan 16, 2015 at 09:31:56PM +0000, Patrick McHardy wrote:
> > 
> > I'm tending towards deferring resize operations while dumps are in
> > progress. Since we only allow dumps by root, it seems the worst
> > thing that can happen is that we run using a non optimal hash,
> > which is comparable to having a badly structured ruleset.
> 
> BTW, the current rhashtable has a deficiency in that the insert
> operation never fails.  However, with delayed resizing, we must
> allow insertion to fail or there can be too many insertions that
> may overwhelm the hash table or even worse overflow the hash table
> size counter.
> 
> So in this scenario, a dump may cause insertion failures by delaying
> the completion of the expansion.

Resizing might also fail because of memory allocation problems, but
I'd argue that its better to continue with a non-optimal sized table
and retry later than to completely fail, at least unless the API
user has explicitly requested this behaviour.

As for the element counter, yeah, it should prevent overflow. In that
case I agree that failing insertion is the easiest solution.

  reply	other threads:[~2015-01-17  8:06 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-15 12:51 [PATCH 0/9] rhashtable: Per bucket locks & deferred table resizing Thomas Graf
2014-12-15 12:51 ` [PATCH 1/9] rhashtable: Do hashing inside of rhashtable_lookup_compare() Thomas Graf
2014-12-15 12:51 ` [PATCH 2/9] rhashtable: Use rht_obj() instead of manual offset calculation Thomas Graf
2014-12-15 12:51 ` [PATCH 3/9] rhashtable: Convert bucket iterators to take table and index Thomas Graf
2014-12-15 12:51 ` [PATCH 4/9] rhashtable: Factor out bucket_tail() function Thomas Graf
2014-12-15 12:51 ` [PATCH 5/9] nft_hash: Remove rhashtable_remove_pprev() Thomas Graf
2014-12-15 12:51 ` [PATCH 6/9] spinlock: Add spin_lock_bh_nested() 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 [this message]
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
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
2014-12-15 12:51 ` [PATCH 8/9] rhashtable: Supports for nulls marker Thomas Graf
2014-12-15 12:51 ` [PATCH 9/9] netlink: Lockless lookup with RCU grace period in socket release Thomas Graf
2014-12-15 13:00 ` [PATCH 0/9 net-next] rhashtable: Per bucket locks & deferred table resizing Thomas Graf
2014-12-15 16:18   ` David Miller
2014-12-15 16:27     ` Thomas Graf
  -- strict thread matches above, loose matches on Subject: below --
2015-01-02 22:00 [PATCH 0/9 net-next v2] " Thomas Graf
2015-01-02 22:00 ` [PATCH 7/9] rhashtable: Per bucket locks & deferred expansion/shrinking Thomas Graf

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=20150117080621.GB3968@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