Re: Request: I/O request recording

From: Davide Libenzi
Date: Sat Jan 24 2004 - 18:54:40 EST


On Sat, 24 Jan 2004, Andrew Morton wrote:

> Felix von Leitner <felix-kernel@xxxxxxx> wrote:
> >
> > I would like to have a user space program that I could run while I cold
> > start KDE. The program would then record which I/O pages were read in
> > which order. The output of that program could then be used to pre-cache
> > all those pages, but in an order that reduces disk head movement.
> > Demand Loading unfortunately produces lots of random page I/O scattered
> > all over the disk.
>
> I wrote a similar thing in September of 2001. What you do is:
>
> - Reboot the system, wait until everything is steady-state (eg: X has
> started, applications are loaded).
>
> - Load a kernel module which dumps the current contents of the pagecache
> (filename/offset-into-file) into a file.
>
> (The kernel module writes to modprobe's stdout, so you just do
>
> modprobe fboot-dump > /tmp/fboot-dump.out
>
> I'm very proud of this.)
>
> - Post-process the resulting output into a database which is used on the
> next reboot.
>
> - reboot
>
> - This time a userspace application cuts in real early and reads the
> database and preloads all the pagecache using "optimal" I/O patterns so
> that everything which you will need in the subsequent boot is already in
> memory.
>
>
> So it's all an attempt to optimise the boot-time I/O patterns. It was
> pretty much a waste of time, gaining only 10% or so, from memory. You
> could get just as much or more speedup from simply launching all the
> initscripts in parallel, although this did tend to break stuff.
>
> Anyway, the code's ancient but might provide some ideas:
>
> http://www.zip.com.au/~akpm/linux/fboot.tar.gz

Warning. I don't know if they do have a patent for this, but MS does this
starting from XP (look inside %WINDIR%\PreFetch). It is both boot and app
based.




- Davide


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