From: Mikael Pettersson <mikpe@it.uu.se>
To: Christoph Hellwig <hch@infradead.org>
Cc: Nick Piggin <npiggin@suse.de>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Memory Management List <linux-mm@kvack.org>,
netdev@vger.kernel.org, Paul McKenney <paulmck@us.ibm.com>
Subject: Re: [patch][rfc] ddds: "dynamic dynamic data structure" algorithm, for adaptive dcache hash table sizing (resend)
Date: Tue, 7 Oct 2008 17:37:43 +0200 [thread overview]
Message-ID: <18667.33351.854693.368568@harpo.it.uu.se> (raw)
In-Reply-To: <20081007071827.GB5010@infradead.org>
Christoph Hellwig writes:
> On Tue, Oct 07, 2008 at 09:02:25AM +0200, Nick Piggin wrote:
> > (resending with correct netdev address)
> >
> > Hi,
> >
> > I thought I should quickly bring this patch up to date and write it up
> > properly, because IMO it is still useful. I earlier had tried to turn the
> > algorithm into a library that could be plugged into with specific lookup
> > functions and such, but that got really nasty and also difficult to retain
> > a really light fastpath. I don't think it is too nasty to open-code it...
> >
> > Describe the "Dynamic dynamic data structure" (DDDS) algorithm, and implement
> > adaptive dcache hash table sizing using DDDS.
> >
> > The dcache hash size is increased to the next power of 2 if the number
> > of dentries exceeds the current size of the dcache hash table. It is decreased
> > in size if it is currently more than 3 times the number of dentries.
> >
> > This might be a dumb thing to do. It also currently performs the hash resizing
> > check for each dentry insertion/deletion, and calls the resizing in-line from
> > there: that's bad, because resizing takes several RCU grace periods. Rather it
> > should kick off a thread to do the resizing, or even have a background worker
> > thread checking the sizes periodically and resizing if required.
> >
> > With this algorithm, I can fit a whole kernel source and git tree in my dcache
> > hash table that is still 1/8th the size it would be before the patch.
> >
> > I'm cc'ing netdev because Dave did express some interest in using this for
> > some networking hashes, and network guys in general are pretty cluey when it
> > comes to hashes and such ;)
I missed the first post, but loooking at the patch it seems
somewhat complex.
How does this relate to traditional incremental hash tables
like extensible hashing or linear hashing (not to be confused
with linear probing)? In linear hashing a resize only affects
a single collision chain at a time, and reads from other chains
than the one being resized are unaffected.
(I can dig up some references if need be.)
/Mikael
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-10-07 15:37 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-07 6:48 [patch][rfc] ddds: "dynamic dynamic data structure" algorithm, for adaptive dcache hash table sizing Nick Piggin
2008-10-07 7:02 ` [patch][rfc] ddds: "dynamic dynamic data structure" algorithm, for adaptive dcache hash table sizing (resend) Nick Piggin
2008-10-07 7:18 ` Christoph Hellwig
2008-10-07 7:53 ` Nick Piggin
2008-10-07 21:06 ` David Miller, Nick Piggin
2008-10-07 15:37 ` Mikael Pettersson [this message]
2008-10-07 16:39 ` Nick Piggin
2008-10-07 7:37 ` Eric Dumazet
2008-10-07 8:06 ` Nick Piggin
2008-10-07 21:05 ` David Miller, Nick Piggin
2008-10-08 2:38 ` Nick Piggin
2008-10-07 21:08 ` [patch][rfc] ddds: "dynamic dynamic data structure" algorithm, for adaptive dcache hash table sizing David Miller, Nick Piggin
2008-10-08 2:48 ` Nick Piggin
2008-10-08 3:12 ` Paul E. McKenney
2008-10-08 3:27 ` Nick Piggin
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=18667.33351.854693.368568@harpo.it.uu.se \
--to=mikpe@it.uu.se \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=netdev@vger.kernel.org \
--cc=npiggin@suse.de \
--cc=paulmck@us.ibm.com \
/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