3 ms·
If I get the entire kernel boot down to 1 ms I might take another look at this. ;-) You absolutely can compile everything you need into the kernel -- in fact f
by cperciva 3y ago
If I get the entire kernel boot down to 1 ms I might take another look at this. ;-)
You absolutely can compile everything you need into the kernel -- in fact for Firecracker you have to since you don't have a boot loader handing you multiple kernel modules. But I needed to write the code to support more than just Firecracker.
- JoshTriplett 3y ago> If I get the entire kernel boot down to 1 ms I might take another look at this. ;-) I look forward to the upcoming boot-time competitions between FreeBSD and Linux. :) > You absolutely can compile everything you need into the kernel -- in fact for Firecracker you have to since you don't have a boot loader handing you multiple kernel modules. But I needed to write the code to support more than just Firecracker. Absolutely. But it seems reasonable to have, for instance, link-time sorting support that only works when building a kernel that doesn't support kernel modules.
- cperciva 3y agoMaybe. The tradeoff is that having two different ways of doing something makes it more likely that one will break without anyone noticing.
- JoshTriplett 3y agoValid. Especially in early boot. Another possibility: always use link-time sorting for the kernel, and for individual modules, and then do runtime merging if and only if you have kernel modules. That way, the link-time sorting path is always tested, and the runtime merging is tested anytime you have kernel modules (which sounds like the more common case). (All of this, though, is gated under "is it worth saving the microseconds yet".)