When a system boots up, multiple components start loading in parallel as well as sequentially after another. Each of them spawn interactions with hardware which can take varying amounts of time. To optimize the boot time of a full system, we need to collect consistent logs of events that lead to time consumption with minimal overhead.
While working on VM launch time optimizations, I realized just how little visibility we have into what consumes time from “CPU runs an instruction” until “OS is up”. So I built a framework to easily extract that information.
This presentation outlines a unified boot logging framework and related infrastructure that exposes boot logs with time stamps from various pre-OS components via sysfs to Linux user space. Using convenient Linux (or other OS) utilities, you can then analyze these logs to determine which part in the boot flow is responsible for delays until you reach your OS.
Alexander Graf, Amazon