In order to make the kernel boot faster, a set of patches was introduced by
Arjan van de Ven in January 2009
to create infrastructure to allow doing some of the initialization steps
asynchronously. The patches allow overlapping significant portions of the hardware delays
in practice. Asynchronous function calls has been merged in mainline starting from 2.6.29. Starting from 2.6.30 the asynchronous function call infrastructure is enabled by default.

In order to not change device order and other similar observables, the
patch does NOT do full parallel initialization.

Rather, it operates more in the way an out of order CPU does; the work may
be done out of order and asynchronous, but the observable effects
(instruction retiring for the CPU) are still done in the original sequence.