From: Daniel Phillips <phillips@arcor.de>
To: Anton Altaparmakov <aia21@cantab.net>
Cc: torvalds@transmeta.com (Linus Torvalds),
linux-kernel@vger.kernel.org (Linux Kernel),
viro@math.psu.edu (Alexander Viro)
Subject: Re: [BK-PATCH 1/3] Introduce fs/inode.c::ilookup().
Date: Mon, 9 Sep 2002 17:55:27 +0200 [thread overview]
Message-ID: <E17oQsq-0006p6-00@starship> (raw)
In-Reply-To: <5.1.0.14.2.20020909095209.03fe4ec0@pop.cus.cam.ac.uk>
On Monday 09 September 2002 10:59, Anton Altaparmakov wrote:
> At 18:04 08/09/02, Daniel Phillips wrote:
> >On Saturday 07 September 2002 16:27, Anton Altaparmakov wrote:
> > > The second and third patch have the small disadvantage to the previous
> > > code in that in the case that ilookup() fails in iget_locked() and
> > > get_new_inode_fast() is called the inode hash is calculated twice.
> > > But that is the slow path so I don't think it is a problem.
> >
> >It doesn't make sense to introduce even this small inefficiency when
> >all you need to do is wrap an __ilookup inline that takes the hash
> >list, and is called both from ilookup and iget. The inline costs
> >nothing, the hidden inefficiency costs cycles, however few.
>
> True. It is not in fast path though. The fast path is ilookup() succeeding.
> If the inode is not in cache, then the fs will have to read it from disk at
> which point the additional hash calculation goes down in the noise on the
> cpu cycles front.
The inode block may be (probably is) in cache, so the hash doesn't get as
lost as you'd think. Granted, it's an efficient hash, but actually, we'd
like to make it a little less efficient to get better distribution, and the
efficiency argument re that improvement has dribbled on for *years*, even
though the improved hash would not be as much as twice as expensive.
That slow path is still very important. Many loads always hit the slow
path (find).
> But if you think it is so important, then yeah, I can
> make an inline wrapper. No problem.
Thanks, then I'll be able to sleep tonight ;-)
While you're in there, feast your eyes on hash() and meditate on how much
it sucks. Bill Irwin did some lovely work a while back on sparse
multiplicative hashes, which ought to be dressed up and incorporated.
--
Daniel
prev parent reply other threads:[~2002-09-09 15:48 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-07 14:27 Anton Altaparmakov
2002-09-08 16:25 ` Daniel Phillips
2002-09-09 8:51 ` Anton Altaparmakov
2002-09-09 16:04 ` Daniel Phillips
2002-09-08 17:04 ` Daniel Phillips
2002-09-09 8:59 ` Anton Altaparmakov
2002-09-09 15:55 ` Daniel Phillips [this message]
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=E17oQsq-0006p6-00@starship \
--to=phillips@arcor.de \
--cc=aia21@cantab.net \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
/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
all inboxes | Powered by JetHome®