parallel booting init in C - even larger speedup

Erich Schubert erich.schubert at
Mon Nov 14 21:22:07 UTC 2005

> Isn't an IO bottleneck 'solved' by using readahead?
> And even without readahead, generating IO requests earlier means the
> HDD may be able to serve them in a more efficient order.

There are even reports on readahead increasing boot time occasionally.
Basically, readahead can only queue read requests, and current
implementations will always load the full file.
So in the case of big files where only a part of the file is needed,
readahead might do unneccesary reads; for files that are not included
in readahead (e.g. logfiles, statefiles with changing filenames...)
and for file writes, the readahead task can actually slow down
("starve") the other processes.
Apparently this is less bad if you split the readahead stuff into
multiple parts, e.g. one loading the core libraries and apps, and a
second readahead stage later on that will load e.g. gtk libs, locales
etc. that your login manager uses.
Maybe we could like ship a readahead file for each service and start
the readahead simultaneous with the service, or slightly earlier.

best regards,
Erich Schubert
    erich@(|      --      GPG Key ID: 4B3A135C    (o_
  To understand recursion you first need to understand recursion.   //\
  Wo befreundete Wege zusammenlaufen, da sieht die ganze Welt für   V_/_
        eine Stunde wie eine Heimat aus. --- Herrmann Hesse

More information about the initscripts-ng-devel mailing list