From: Eric Dumazet <eric.dumazet@gmail.com>
To: Stephen Hemminger <shemminger@vyatta.com>
Cc: Octavian Purdila <opurdila@ixiacom.com>, netdev@vger.kernel.org
Subject: Re: [PATCH next-next-2.6] netdev: better dev_name_hash
Date: Mon, 26 Oct 2009 08:48:03 +0100 [thread overview]
Message-ID: <4AE55433.6060509@gmail.com> (raw)
In-Reply-To: <20091025233016.6860d9c7@nehalam>
Stephen Hemminger a écrit :
> I overkilled this with more functions and compared filenames as well.
>
>
> genarated names (dummyNNNN)
> Algorithm Time (us) Ratio Max StdDev
> kr_hash 277925 152408.6 468448 543.19
> string_hash31 329356 5859.4 16042 44.18
> SuperFastHash 324570 4885.9 10502 2.29
> djb2 327908 5608.5 15210 38.08
> string_hash17 326769 4883.6 9896 0.76
> full_name_hash 343196 63921.0 140628 343.62
> jhash_string 463801 4883.8 10085 1.02
> sdbm 398587 9801.7 29634 99.18
>
> filesystem names
> Algorithm Time (us) Ratio Max StdDev
> kr_hash 278840 152314.9 468717 543.01
> string_hash31 331206 5802.1 16004 42.87
> SuperFastHash 325938 4887.5 13528 2.88
> djb2 330621 5607.1 15333 38.05
> string_hash17 331181 4884.9 13274 1.78
> full_name_hash 347312 63972.2 141336 343.77
> jhash_string 466799 4885.2 13275 1.92
> sdbm 403691 9771.7 29629 98.88
>
> Ratio is the average number of buckets examined when scanning
> the whole set of names.
>
>
> 1) Increased hash buckets to 1024 which seems reasonable if we are
> going to test that many names.
> 2) Increased name size to 256 so that longer filenames could be
> checked and name blocks were not in same cache line
>
> * SuperFastHash is too big to put inline
>
>
Thanks Stephen
1) dcache hash is very big on average machines.
2) dcache : We hash last component, against its parent, acting as a base.
Your hashtest program considers the name as a single entity, giving different
hash distribution.
3) netdev names are special, since we have only one parent, and
smaller hash table.
4) jhash is not that expensive, but it might be because of huge working set of your
test program : strings are not in cpu caches and speed is mostly driven by ram bandwidth.
But current full_name_hash() seems a pretty bad choice !
next prev parent reply other threads:[~2009-10-26 7:48 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-25 19:58 [PATCH next-next-2.6] netdev: better dev_name_hash Octavian Purdila
2009-10-25 20:17 ` Hagen Paul Pfeifer
2009-10-25 21:24 ` Eric Dumazet
2009-10-25 21:55 ` Octavian Purdila
2009-10-25 22:41 ` Hagen Paul Pfeifer
2009-10-25 22:45 ` Octavian Purdila
2009-10-26 5:28 ` Eric Dumazet
2009-10-26 13:07 ` Krishna Kumar2
2009-10-26 14:31 ` Octavian Purdila
2009-10-26 14:55 ` Eric Dumazet
2009-10-26 15:52 ` Octavian Purdila
2009-10-26 16:55 ` Stephen Hemminger
2009-10-26 17:45 ` Stephen Hemminger
2009-10-27 1:24 ` David Miller
2009-10-27 1:40 ` Eric Dumazet
2009-10-26 6:30 ` Stephen Hemminger
2009-10-26 7:48 ` Eric Dumazet [this message]
2009-10-26 4:43 ` Stephen Hemminger
2009-10-26 22:36 ` [PATCH] dcache: better name hash function Stephen Hemminger <shemminger@vyatta.com>, Al Viro
2009-10-27 2:45 ` Eric Dumazet
2009-10-27 3:53 ` Stephen Hemminger
2009-10-27 16:38 ` Rick Jones
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=4AE55433.6060509@gmail.com \
--to=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=opurdila@ixiacom.com \
--cc=shemminger@vyatta.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;
as well as URLs for NNTP newsgroup(s).