Improve start-up time of programs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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/



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux