A friend of mine has been showing off Linux booting from scratch (not waking from suspend) on an i5 tablet within a couple seconds. People using tablets have been trained to expect this sort of fast response, so this is the a much more relevant use-case for fast boot than those servers with poky bioses.
I really wish server bioses weren't so darned slow as to make fast boot almost completely moot though, since one of my contracts involves developing Linux installs for both servers and workstations... trust me, servers used for testing custom kickstarts get booted a LOT more frequently than typical operational servers.
Posted Nov 10, 2012 21:56 UTC (Sat) by zlynx (subscriber, #2285)
[Link]
A big chunk of that server BIOS time is ECC init. It might be nice if there was some sort of BIOS flag that could tell the OS, "Hey, I have done ECC init on the first megabyte. Have fun: do the rest yourself."
Then Linux could boot and hot plug each new piece of memory as ECC init completed.
Your system would be a little odd: during the first minute it'd have less than a gigabyte, growing toward the full 64 GB as time went on.
LCE: Systemd two years on
Posted Nov 10, 2012 23:09 UTC (Sat) by nix (subscriber, #2304)
[Link]
OK, hardware idiot here. Why's ECC init any slower than normal RAM? Even filling all of RAM with a known value doesn't take anywhere near as long as some server boards take to start.
LCE: Systemd two years on
Posted Nov 10, 2012 23:32 UTC (Sat) by dlang (✭ supporter ✭, #313)
[Link]
In a lot of cases the BIOS is actually testing the memory, not just seeing if it exists.
This is a huge waste of time, except when it finds a problem.
In addition, Server boards tend to have other things on them that are careful in their initialization, and have timeouts to detect if things have been connected to them or not.
There is a lot of logic in these peripheral processors, and the BIOS is conservative and serializes all the initialization.
Servers don't tend to reboot that frequently, so the boot time is not a big deal (or if you think it is, you need to be running your app on a cluster anyway, at which point the boot time of any individual server is again not a big deal)
I have some systems at work with large RAID arrays and lots of RAM that take long enough to go through their boot that I can take a CD, boot a fast system that doesn't have all these extras, run my (custom) OS installer, pull the CD out and put it in the slow machine before it gets around to looking for the disk.