Continuing my study of Linux's bootup sequence...
Next it allocates a kmem cache for "maple trees", reportedly used to track Virtual Memory Areas.
Then it inits x86- or PowerPC-specific facilities for poking & patching a running kernel. In short on x86 this involves using helpers to allocate some datastructures, enable virtualization memory map, setting a no-track bit, (not via helper) getting a text-poke address with possible offsets, getting a locked PTE, & unlocking it.
1/?
After that it might init function tracing by possibly invoking CPU-specific under lock (irrelevant to anything modern), retrieves & validates a build-time array's length, carefully invokes (via a helper) each of its sorted functions with newly-allocated memory, outputs status possibly propagating failures, sets some global flags, & initializes (via a suite of helpers) a selection of global filters & graphs. Disabling a flag upon error.
2/3?