From: Daniel Phillips <phillips@bonn-fries.net>
To: Alex Bligh - linux-kernel <linux-kernel@alex.org.uk>,
Linus Torvalds <torvalds@transmeta.com>
Cc: Andreas Dilger <adilger@turbolabs.com>,
Andrea Arcangeli <andrea@suse.de>,
Kernel Mailing List <linux-kernel@vger.kernel.org>,
Alex Bligh - linux-kernel <linux-kernel@alex.org.uk>
Subject: Re: linux-2.4.10-pre5
Date: Tue, 11 Sep 2001 01:13:04 +0200 [thread overview]
Message-ID: <20010910230554Z16824-26183+920@humbolt.nl.linux.org> (raw)
In-Reply-To: <20010910214731Z16329-26183+884@humbolt.nl.linux.org> <1733287603.1000165191@[169.254.198.40]>
In-Reply-To: <1733287603.1000165191@[169.254.198.40]>
On September 11, 2001 12:39 am, Alex Bligh - linux-kernel wrote:
> You could look at this problem the other way around, and firstly
> say "what we have read, we shall cache, and we shall not restrict
> this to the reader who caused it to be read; and what we guess
> is going to be read by file we shall read in preparation [1]". And
> /then/ say, once you've elevator sorted the lot, that if we
> have spare I/O bandwidth etc. etc., that it might make sense
> to extend each portion of the elevator vector, especially if
> it coalesces entries together. (But no point caching stuff twice.)
Yes, that's bascially what I had in mind. The extension of the elevator
vector is the physical readahead. Except I had in mind to turn it around,
and have the logical readahead not do the readahead itself, but just guide
the operation of the physical readahead.
> [1]=because I am assuming that this has wider applicability (NFS etc.)
> and better results (/alone/) than physical readahead, for most
> applications, not least as you can apply more intelligence at
> that level. And I am assuming any extra benefits of physical readahead
> (i.e. beyond those that would be given by an intelligent form
> of logical readahead whose results were shared) are done by the disk.
>
> > If we implement the physical block reverse mapping as I described in an
> > earlier post then the dd technique will work fine.
>
> I think that is nearly isomorphic to what I'm saying, but I'm not
> talking about improving just the benchmark.
We're on the same wavelength now.
> Example: writing read-ahead caching on a different OS (admittedly
> a while ago) we discovered that physical readahead was useful
> (surprise surprise) but ended up eating memory. [This was an
> environment where the readahead cache (and I/O activity) could
> live on a different processor(s) and disk I/O b/w didn't reduce
> other I/O b/w. In some senses this is a little bit similar to
> SMP. We had some memory to give away, but limited]. We discovered,
> somewhat to our surprise, that if you trapped directory enumeration,
> and read (in the background) the first few blocks of every file therein,
> you got vast performance increases over straight readahead. This
> turned out to be because this was exactly what many applications
> did. And we also saw the gain over non-physical filesystems. Now
> I have no idea whether this is the case under Linux too (almost
> a decade later), but all I'm saying is by the time you've got down
> to the block number layer, (a) you've thrown away important
> information,
Don't throw away that information then, use it as hints to guide the physical
readahead.
> and (b) the device manufacturer has already thought
> of that, and gone done it in hardware. There's no way, however,
> they could have done the directory readahead in h/w.
>
> >> More serious point: if we retain readahead at a
> >> logical level, you get it for non-physical
> >> files too (e.g. NFS) - I presume this is
> >> the intention. If so, what advantage does
> >> additional physical readahead give you,
> >
> > Well, you can see from my demonstration that logical readahead sucks
> > badly for this common case.
>
> No, I see you correctly pointing out that /current/
> logical readahead can suck as the page cache cannot
> use the contents of the buffer cache.
OK, now to shorten this up, if you've reached the conclusion that the page
cache needs to be able to take advantage of blocks already read into the
buffer cache then we're done. That was my point all along.
--
Daniel
next prev parent reply other threads:[~2001-09-10 23:05 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-08 4:18 linux-2.4.10-pre5 Linus Torvalds
2001-09-08 6:32 ` linux-2.4.10-pre5: drivers/net/wan compile fixes Eyal Lebedinsky
2001-09-08 6:36 ` 2.4.9-ac10 (not 2.4.10-pre5!) wan fixes Eyal Lebedinsky
2001-09-08 8:32 ` 2.4.10-pre5 compile error George Bonser
2001-09-08 17:19 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-08 17:30 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-08 17:57 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-08 18:01 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 1:09 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 1:20 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 1:38 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 1:53 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 2:22 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 2:31 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 3:30 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 3:58 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 4:16 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 4:28 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 12:09 ` linux-2.4.10-pre5 Rik van Riel
2001-09-09 14:53 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 18:17 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 20:18 ` linux-2.4.10-pre5 H. Peter Anvin
2001-09-10 0:39 ` linux-2.4.10-pre5 Simon Kirby
2001-09-10 8:30 ` linux-2.4.10-pre5 Kai Henningsen
2001-09-11 5:29 ` linux-2.4.10-pre5 Peter Samuelson
2001-09-11 11:29 ` linux-2.4.10-pre5 Kai Henningsen
2001-09-10 21:22 ` linux-2.4.10-pre5 Stephen C. Tweedie
2001-09-09 14:47 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 16:24 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 17:29 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-09 23:56 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-09 4:29 ` linux-2.4.10-pre5 Andreas Dilger
2001-09-09 4:54 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 6:17 ` linux-2.4.10-pre5 Andreas Dilger
2001-09-09 17:31 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 19:19 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-09 23:24 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-09 23:54 ` linux-2.4.10-pre5 Alan Cox
2001-09-10 0:04 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 0:23 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-10 0:23 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 0:38 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-10 1:04 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-10 1:45 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 1:55 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-10 2:15 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 2:20 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 2:40 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 3:02 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 3:36 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 19:06 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 2:22 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 2:02 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 2:06 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-10 2:03 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-10 2:41 ` linux-2.4.10-pre5 Chris Mason
2001-09-10 21:18 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 21:23 ` linux-2.4.10-pre5 Alex Bligh - linux-kernel
2001-09-10 21:54 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 22:39 ` linux-2.4.10-pre5 Alex Bligh - linux-kernel
2001-09-10 23:13 ` Daniel Phillips [this message]
2001-09-10 23:25 ` linux-2.4.10-pre5 Alex Bligh - linux-kernel
2001-09-10 22:15 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-10 22:26 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-10 22:39 ` linux-2.4.10-pre5 Rik van Riel
2001-09-10 23:14 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-10 23:16 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 0:53 ` linux-2.4.10-pre5 Rik van Riel
2001-09-11 6:39 ` linux-2.4.10-pre5 Hua Zhong
2001-09-11 15:12 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 15:44 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 15:48 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 16:05 ` linux-2.4.10-pre5 Alex Bligh - linux-kernel
2001-09-11 16:07 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 16:07 ` linux-2.4.10-pre5 Alex Bligh - linux-kernel
2001-09-11 16:13 ` linux-2.4.10-pre5 Martin Dalecki
2001-09-11 17:17 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 10:02 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 20:07 ` linux-2.4.10-pre5 Rik van Riel
2001-09-10 23:20 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 0:20 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 1:16 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 2:27 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 7:45 ` linux-2.4.10-pre5 Helge Hafting
2001-09-11 10:27 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-11 15:39 ` linux-2.4.10-pre5 Linus Torvalds
2001-09-11 16:52 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-09 19:51 ` linux-2.4.10-pre5 Daniel Phillips
2001-09-09 9:05 ` linux-2.4.10-pre5 Christoph Hellwig
2001-09-09 13:14 ` linux-2.4.10-pre5 Anton Altaparmakov
2001-09-09 14:31 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-08 21:15 ` linux-2.4.10-pre5 Andreas Dilger
2001-09-09 0:59 ` linux-2.4.10-pre5 Andrea Arcangeli
2001-09-08 22:01 ` linux-2.4.10-pre5 Thiago Vinhas de Moraes
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=20010910230554Z16824-26183+920@humbolt.nl.linux.org \
--to=phillips@bonn-fries.net \
--cc=adilger@turbolabs.com \
--cc=andrea@suse.de \
--cc=linux-kernel@alex.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.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
all inboxes | Powered by JetHome®