linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Xuan Baldauf <xuan--reiserfs@baldauf.org>
To: Rik van Riel <riel@conectiva.com.br>
Cc: Xuan Baldauf <xuan--lkml@baldauf.org>,
	linux-kernel@vger.kernel.org,
	Reiserfs List <reiserfs-list@namesys.com>
Subject: Re: Heuristic readahead for filesystems
Date: Wed, 11 Sep 2002 19:56:12 +0200	[thread overview]
Message-ID: <3D7F83BC.5DF306A@baldauf.org> (raw)
In-Reply-To: Pine.LNX.4.44L.0209111340060.1857-100000@imladris.surriel.com



Rik van Riel wrote:

> On Wed, 11 Sep 2002, Xuan Baldauf wrote:
>
> > I wonder wether Linux implements a kind of heuristic
> > readahead for filesystems:
>
> > If an application did a stat()..open()..read() sequence on a
> > file, it is likely that, after the next stat(), it will open
> > and read the mentioned file. Thus, one could readahead the
> > start of a file on stat() of that file.
>
> > Example: See this diff strace:
>
> Your observation is right, but I'm not sure how much it will
> matter if we start reading the file at stat() time or at
> read() time.
>
> This is because one disk seek takes about 10 million CPU
> cycles on modern systems and we'll have completed the stat(),
> open() and started the read() before the disk arm has started
> moving ;)
>
> regards,
>
> Rik

The point here is not to optimize latency but to optimize throughput: If the
filesystem is able to recognize that a whole tree is being read, it may issue
read requests for all the blocks of that tree, which are (with a high
probability) in such a close location to each other that all the read requests
can result in a single, large, megabyte-big disk-read-burst, taking few
seconds instead of minutes.

In theory, this also could be implemented explicitly if the application could
tell the kernel "I'm going to read these 100 files in the very near future,
please make them ready for me". But wait, maybe the application can do this
(for regular files, not for directory entries and stat() data): Could it be
efficient if the application used open(file,O_NONBLOCK) for the next 100 files
and subsequent read()s on each of the returned filedescriptors?

Xuân.



  parent reply	other threads:[~2002-09-11 17:55 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-09-11 15:42 Heuristic readahead for filesystems Xuan Baldauf
2002-09-11 16:33 ` Davide Libenzi
2002-09-11 17:03   ` jdow
2002-09-11 17:20     ` Davide Libenzi
2002-09-11 17:51       ` jdow
2002-09-11 17:16   ` Hans Reiser
2002-09-11 16:42 ` Rik van Riel
2002-09-11 17:20   ` Oliver Neukum
2002-09-11 17:56   ` Xuan Baldauf [this message]
2002-09-11 18:30     ` Oliver Neukum
2002-09-11 18:43       ` Xuan Baldauf
2002-09-11 19:04         ` Oliver Neukum
2002-09-11 19:21           ` Richard B. Johnson
2002-09-12  0:45             ` jw schultz
2002-09-12  1:58               ` Andrew Morton
2002-09-12 11:41               ` Richard B. Johnson
2002-09-12 13:35                 ` jw schultz
2002-09-12 21:33                 ` jdow
2002-09-16 12:52                   ` Richard B. Johnson
2002-09-17  1:45                     ` jdow
2002-09-17 10:37                       ` jbradford
2002-09-17  5:19                     ` jdow
2002-09-12 12:41               ` Jesse Pollard
2002-09-11 19:03   ` Tomas Szepe

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=3D7F83BC.5DF306A@baldauf.org \
    --to=xuan--reiserfs@baldauf.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=reiserfs-list@namesys.com \
    --cc=riel@conectiva.com.br \
    --cc=xuan--lkml@baldauf.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).