[systemd-devel] preset activation on first boot takes too long

Dimitri John Ledkov dimitri.j.ledkov at intel.com
Thu May 14 09:13:23 PDT 2015


I'm looking at bootcharts and it seems like first boot preset
activation takes too much time...

So at the moment, we iterate all units, then iterate through presets
until we find a match and act upon it.

However, most distros have "disable *" as their last setting, or don't
use presets at all.

Furthermore looking at a fully featured system (e.g. my ubuntu laptop):
* 158 files do not have install section
* 89 have an install secion

Also it seems odd to have all of this in the pid one critical path ->
e.g. these things are being parsed before anything happens.

Thus I wonder if the presets should be moved into e.g. a generator
that will do the following on first boot only:

* parse .preset files
* construct list of things to enable
* enable all the units in that list

This should cut I/O and processing time at first boot by a bit, since
only the units to be activated will be parsed.

That also kind of means that it will only work if the last fallback
policy is "disable *".

For a reference, preset enabling on first boot accounts for around
6.5% of the first boot time for me on fairly minimal containers / base

What do you think about this?


Pura Vida!

Open Source Technology Center
Intel Corporation (UK) Ltd. - Co. Reg. #1134945 - Pipers Way, Swindon SN3 1RJ.

More information about the systemd-devel mailing list