This is an idea I've been thinking about for a while. It's inspired by an improvent to the Windows XP kernel that Microsoft describes here: http://www.microsoft.com/windowsxp/pro/techinfo/planning/performance/runtimeperf.asp and in more detail here: http://msdn.microsoft.com/msdnmag/issues/01/12/XPKernel/default.aspx (under the heading "Prefetch"). Basically the XP kernel monitors page faults during application start-up and keeps a record of them. Then, the next time a program starts instead of waiting for what is likely going to be the same set of page faults, the kernel can send asynchronous requests off to the i/o scheduler so that it has a chance of reordering the them to minimize the number of disk seeks. It seems to me that a reasonable way to do this would be to allow userspace processes access to a list of addresses of recent page faults. Then they could maintain a record themselves and call madvise (WILL_NEED) on the addresses on that list when they are starting up. I have no experience with kernel programming at all, and no time at the moment to experiment with it, so I'm posting here in the hope that someone will find the idea interesting. Søren -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/