Re: Heuristic readahead for filesystems

From: Xuan Baldauf (xuan--reiserfs@baldauf.org)
Date: Wed Sep 11 2002 - 13:43:22 EST


Oliver Neukum wrote:

> > 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?
>
> What do you want to trigger the reading ahead, open() or read() ?

As open() immediately returns, it does not matter by which call the readahead is
triggered. But I'm unsure about wether it is triggered at all for the amount of
data the read() requested.

>
> Please correct me, if I am wrong, but wouldn't read() block ?

AFAIK, "man open" tells

[...]
      int open(const char *pathname, int flags);
[...]
       O_NONBLOCK or O_NDELAY
               The file is opened in non-blocking mode. Neither the open nor any
__subsequent__ operations on the file descriptor
               which is returned will cause the calling process to wait.
[...]

So read won't block if the file has been opened with O_NONBLOCK.

>
>
> Aio should be able to do it. But even that want help you with the stat data.

Aio would help me announcing stat() usage for the future?

>
>
> Regards
> Oliver

Xuân.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Sep 15 2002 - 22:00:26 EST