Messages in this thread | | | Date | Sun, 16 Dec 2012 05:17:57 +0000 | From | Eric Wong <> | Subject | Re: [PATCH] fadvise: perform WILLNEED readahead in a workqueue |
| |
Dave Chinner <david@fromorbit.com> wrote: > On Sun, Dec 16, 2012 at 03:59:53AM +0000, Eric Wong wrote: > > I want the first read() to happen sooner than it would under current > > fadvise. > > You're not listening. You do not need the kernel to be modified to > avoid the latency of issuing 1GB of readahead on a file. > > You don't need to do readahead before the first read. Nor do you do > need to wait for 1GB of readhead to be issued before you do the > first read. > > You could do readahead *concurrently* with the first read, so the > first read only blocks until the readahead of the first part of the > file completes. i.e. just do readahead() in a background thread and > don't wait for it to complete before doing the first read.
What you describe with concurrent readahead() is _exactly_ what my test program (in other email) does with the RA environment variable set.
I know I do not _need_ fadvise + background WILLNEED support in the kernel.
But I think the kernel can make life easier and allow us to avoid doing background threads or writing our own (inferior) caching in userspace.
| |