From: Linus Torvalds <torvalds@osdl.org>
To: Christoph Hellwig <hch@infradead.org>
Cc: Willy Tarreau <w@1wt.eu>, "H. Peter Anvin" <hpa@zytor.com>,
git@vger.kernel.org, nigel@nigel.suspend2.net,
"J.H." <warthog9@kernel.org>,
Randy Dunlap <randy.dunlap@oracle.com>,
Andrew Morton <akpm@osdl.org>, Pavel Machek <pavel@ucw.cz>,
kernel list <linux-kernel@vger.kernel.org>,
webmaster@kernel.org
Subject: Re: How git affects kernel.org performance
Date: Sun, 7 Jan 2007 10:17:38 -0800 (PST) [thread overview]
Message-ID: <Pine.LNX.4.64.0701070957080.3661@woody.osdl.org> (raw)
In-Reply-To: <20070107102853.GB26849@infradead.org>
On Sun, 7 Jan 2007, Christoph Hellwig wrote:
>
> On Sun, Jan 07, 2007 at 10:03:36AM +0100, Willy Tarreau wrote:
> > The problem is that I have no sufficient FS knowledge to argument why
> > it helps here. It was a desperate attempt to fix the problem for us
> > and it definitely worked well.
>
> XFS does rather efficient btree directories, and it does sophisticated
> readahead for directories. I suspect that's what is helping you there.
The sad part is that this is a long-standing issue, and the directory
reading code in ext3 really _should_ be able to do ok.
A year or two ago I did a totally half-assed code for the non-hashed
readdir that improved performance by an order of magnitude for ext3 for a
test-case of mine, but it was subtly buggy and didn't do the hashed case
AT ALL. Andrew fixed it up so that it at least wasn't subtly buggy any
more, but in the process it also lost all capability of doing fragmented
directories (so it doesn't help very much any more under exactly the
situation that is the worst case), and it still doesn't do the hashed
directory case.
It's my personal pet peeve with ext3 (as Andrew can attest). And it's
really sad, because I don't think it is fundamental per se, but the way
the directory handling and jdb are done, it's apparently very hard to fix.
(It's clearly not _impossible_ to do: I think that it should be possible
to treat ext3 directories the same way we treat files, except they would
always be in "data=journal" mode. But I understand ext2, not ext3 (and
absolutely not jbd), so I'm not going to be able to do anything about it
personally).
Anyway, I think that disabling hashing can actually help. And I suspect
that even with hashing enabled, there should be some quick hack for making
the directory reading at least be able to do multiple outstanding reads in
parallel, instead of reading the blocks totally synchronously ("read five
blocks, then wait for the one we care" rather than the current "read one
block at a time, wait for it, read the next one, wait for it.."
situation).
Linus
next prev parent reply other threads:[~2007-01-07 18:19 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20061214223718.GA3816@elf.ucw.cz>
[not found] ` <20061216094421.416a271e.randy.dunlap@oracle.com>
[not found] ` <20061216095702.3e6f1d1f.akpm@osdl.org>
[not found] ` <458434B0.4090506@oracle.com>
[not found] ` <1166297434.26330.34.camel@localhost.localdomain>
[not found] ` <1166304080.13548.8.camel@nigel.suspend2.net>
[not found] ` <459152B1.9040106@zytor.com>
[not found] ` <1168140954.2153.1.camel@nigel.suspend2.net>
2007-01-07 4:22 ` [KORG] Re: kernel.org lies about latest -mm kernel Jeff Garzik
2007-01-07 4:29 ` Linus Torvalds
2007-01-07 20:11 ` Greg KH
2007-01-07 21:30 ` H. Peter Anvin
2007-01-07 21:54 ` Junio C Hamano
2007-01-07 22:21 ` Jeff Garzik
2007-01-07 22:53 ` Linus Torvalds
2007-01-07 23:32 ` Martin Langhoff
[not found] ` <45A08269.4050504@zytor.com>
2007-01-07 5:24 ` How git affects kernel.org performance H. Peter Anvin
2007-01-07 5:39 ` Linus Torvalds
2007-01-07 8:55 ` Willy Tarreau
2007-01-07 8:58 ` H. Peter Anvin
2007-01-07 9:03 ` Willy Tarreau
2007-01-07 10:28 ` Christoph Hellwig
2007-01-07 10:52 ` Willy Tarreau
2007-01-07 18:17 ` Linus Torvalds [this message]
2007-01-07 19:13 ` Linus Torvalds
[not found] ` <9e4733910701071126r7931042eldfb73060792f4f41@mail.gmail.com>
2007-01-07 19:35 ` Linus Torvalds
2007-01-07 10:50 ` Jan Engelhardt
2007-01-07 18:49 ` Randy Dunlap
2007-01-07 19:07 ` Jan Engelhardt
2007-01-07 19:28 ` Randy Dunlap
2007-01-07 19:37 ` Linus Torvalds
2007-01-07 9:15 ` Andrew Morton
2007-01-07 9:38 ` Rene Herman
2007-01-08 3:05 ` Suparna Bhattacharya
2007-01-08 12:58 ` Theodore Tso
2007-01-08 13:41 ` Johannes Stezenbach
2007-01-08 13:56 ` Theodore Tso
2007-01-08 13:59 ` Pavel Machek
2007-01-08 14:17 ` Theodore Tso
2007-01-08 13:43 ` Jeff Garzik
2007-01-09 1:09 ` Paul Jackson
2007-01-09 2:18 ` Jeremy Higdon
[not found] ` <20070109075945.GA8799@mail.ustc.edu.cn>
2007-01-09 7:59 ` Fengguang Wu
2007-01-09 7:59 ` Fengguang Wu
2007-01-09 16:23 ` Linus Torvalds
[not found] ` <20070110015739.GA26978@mail.ustc.edu.cn>
2007-01-10 1:57 ` Fengguang Wu
2007-01-10 1:57 ` Fengguang Wu
2007-01-10 1:57 ` Fengguang Wu
2007-01-10 3:20 ` Nigel Cunningham
[not found] ` <20070110140730.GA986@mail.ustc.edu.cn>
2007-01-10 14:07 ` Fengguang Wu
2007-01-10 14:07 ` Fengguang Wu
2007-01-10 14:07 ` Fengguang Wu
2007-01-12 10:54 ` Nigel Cunningham
2007-01-09 7:59 ` Fengguang Wu
2007-01-07 14:57 ` Robert Fitzsimons
2007-01-07 19:12 ` J.H.
2007-01-08 1:51 ` Jakub Narebski
2007-01-07 15:06 ` Krzysztof Halasa
2007-01-07 20:31 ` Shawn O. Pearce
2007-01-08 14:46 ` Nicolas Pitre
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=Pine.LNX.4.64.0701070957080.3661@woody.osdl.org \
--to=torvalds@osdl.org \
--cc=akpm@osdl.org \
--cc=git@vger.kernel.org \
--cc=hch@infradead.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nigel@nigel.suspend2.net \
--cc=pavel@ucw.cz \
--cc=randy.dunlap@oracle.com \
--cc=w@1wt.eu \
--cc=warthog9@kernel.org \
--cc=webmaster@kernel.org \
/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).