Be sure to check PHK's comment (#5)
madvise + mincore syscalls could be used to get the kernel to preload the pages asynchronously.
madvise + mincore syscalls could be used to get the kernel to preload the pages asynchronously.
Polling mincore wouldn't be that bad as it would only happen between the commands and at least the core of the algorithm would be simple: before executing a command, check if it's data are in memory with mincore, if not ask to load them with madvise, and go to the next command.
What does Flash use worker threads for?
http://www.usenix.org/event/usenix99/full_papers/pai/pai_htm...