ClangBuiltLinux / boot-utils

Collection of files for booting Linux kernels
26 stars 7 forks source link

Explore re-adding '-no-reboot' in combination with printing a "success" string before shutting down #96

Open nathanchance opened 1 year ago

nathanchance commented 1 year ago

We added -no-reboot unconditionally to QEMU in #65, which we had to revert in #95 to avoid missing potential problems (#94).

-no-reboot is helpful for avoiding timeout overhead but we need to be able to determine when a machine has panicked and gone to reboot versus exiting cleanly. pvpanic aims to make that possible from my understanding but we cannot guarantee that CONFIG_PVPANIC is enabled in the kernels that we are booting.

@ojeda suggested that we could echo some string like we print /proc/version before shutting down the machine then check for that string to know whether or not a boot is successful. There are two immediate downsides I see to this approach versus our current relying on timeout strategy:

  1. Having to rebuild the rootfs images, which increases the repo size (perhaps we should explore setting up a separate repo for those images and making it a submodule of this one?)
  2. Other projects using boot-utils (such as my personal testing framework) will have to code the same logic as our CI for parsing the output of QEMU (not difficult, so who cares).