Since the fast boot patches have apparently been pulled into 2.6.29, and
now that we have mainline builds, it seemed worthwhile to compare our
current kernel with the newest upstream ones.
Note that this is not a completely fair test. The upstream kernel lacks
various Ubuntu patches and additions, most notably the wireless driver
for the mini9.
Timings are for 2.6.28-7 plain, and compared to both 2.6.29-rc4 and
2.6.29-rc5 without (-1) and with (-2) the fastboot/async work:
2.6.28-7 2.6.29-rc4 2.6.29-rc5
no-FB FB no-FB FB
Bootchart time 46s 46s 46s 47s 46s
in kernel 2.79s 2.33s 2.48s 2.33s 2.25s
in initramfs 1.56s 1.54s 1.49s 1.52s 1.55s
of which udev 1.00s 1.03s 0.99s 1.07s 1.06s
in rcS/2 18.49s 16.65s 17.60s 16.93s 17.56s
of which udev 5.11s 5.63s 5.53s 5.71s 5.61s
MEAN 2.94s 2.75s 2.65s 2.65s 2.80s
MEDIAN 3.24s 3.28s 2.63s 2.74s 3.08s
MODE 4.49s 0s ? 2.45s 3.40s 4.05s
STDDEV 1.35s 1.43s 1.34s 1.37s 1.41s
So very little variance in the boot speed itself, which is what we'd
expect; it at least means there's no surprising regressions waiting to
The 2.6.29 kernel seems to initialise roughly half a second faster than
the 2.6.28 kernel with or without "fastboot".
But it's touch to see from the bootgraph why. There's no difference in
the graph itself, it's just that the 2.6.28 graph starts half a second
No matter, 2.6.28 and before consistently start in around 2.8s, and
2.6.29 consistently starts in around 2.3s - I don't care where that .5s
comes from, it's there
So what _do_ we see from the bootgraph?
By far the most time is spent in populate_rootfs(), which is the bit
that unpacks the initramfs. Basically an entire second.
Another large block is isapnp_init, taking about a third of a second;
and unsurprisingly piix_init taking a fifth of a second.
A noticeable difference is that pci_init only appears in the 2.6.28
graph, not the 2.6.29 graphs.
The fastboot version moves the piix port probe out into an async
function, allowing some parallel work. But since what else went on only
took 0.1s, it's not much of speed up.
(I'd be more interested to see isapnp_init and populate_rootfs moved to
Scott James Remnant
kernel-team mailing list