* Why built-in modules slow down kernel boot?
@ 2014-09-30 10:27 Michele Curti
2014-09-30 18:28 ` Greg KH
0 siblings, 1 reply; 2+ messages in thread
From: Michele Curti @ 2014-09-30 10:27 UTC (permalink / raw)
To: kernelnewbies
Hi all,
it's just a curiosity.
Since the use of an initramfs doubles the kernel boot time I decided to play a
little compiling as built-in the modules required to mount root (starting
from a localmodconfig).
Everything ok, the system starts and the kernel boot time is good
Startup finished in 1.749s (firmware) + 375ms (loader) +
1.402s (kernel) + 716ms (userspace) = 4.244s
(from systemd-analyze).
My next idea was: "Well, why not to make all modules as built-in? So I avoid
reading from disk at every module load.. and all of them are loaded
anyway", but the results was opposite to my expectations, kernel boot time
increased from 1.4 to 3 seconds.
So my question is, how this can be explained?
My theory is that by compiling all the modules as built-in, the kernel calls
all the module __init functions in a sequential manner, (using a single
core?) and lets the userspace start only when everything is done.
But I'm not sure at all.
I have a samsung ativ book 9 liite: 1GHz 4core, ssd
Regards,
Michele
^ permalink raw reply [flat|nested] 2+ messages in thread
* Why built-in modules slow down kernel boot?
2014-09-30 10:27 Why built-in modules slow down kernel boot? Michele Curti
@ 2014-09-30 18:28 ` Greg KH
0 siblings, 0 replies; 2+ messages in thread
From: Greg KH @ 2014-09-30 18:28 UTC (permalink / raw)
To: kernelnewbies
On Tue, Sep 30, 2014 at 12:27:12PM +0200, Michele Curti wrote:
> Hi all,
> it's just a curiosity.
>
> Since the use of an initramfs doubles the kernel boot time I decided to play a
> little compiling as built-in the modules required to mount root (starting
> from a localmodconfig).
>
> Everything ok, the system starts and the kernel boot time is good
> Startup finished in 1.749s (firmware) + 375ms (loader) +
> 1.402s (kernel) + 716ms (userspace) = 4.244s
> (from systemd-analyze).
>
> My next idea was: "Well, why not to make all modules as built-in? So I avoid
> reading from disk at every module load.. and all of them are loaded
> anyway", but the results was opposite to my expectations, kernel boot time
> increased from 1.4 to 3 seconds.
>
> So my question is, how this can be explained?
>
> My theory is that by compiling all the modules as built-in, the kernel calls
> all the module __init functions in a sequential manner, (using a single
> core?) and lets the userspace start only when everything is done.
Yes, that is correct. And some of those init functions do lots of "odd"
things, thinking that the hardware for those drivers really is present,
so they can take a while to figure out that they shouldn't be running at
all.
Also, a larger kernel takes longer to read off of the disk and load into
memory, although with a ssd, it shouldn't be noticable.
greg k-h
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-09-30 18:28 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-30 10:27 Why built-in modules slow down kernel boot? Michele Curti
2014-09-30 18:28 ` Greg KH
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.