On Thu, Mar 31, 2016 at 11:17:30PM +0100, Richard W.M. Jones wrote: > On Thu, Mar 31, 2016 at 12:22:23PM -0400, Kevin O'Connor wrote: > > On Thu, Mar 31, 2016 at 10:21:25AM +0100, Stefan Hajnoczi wrote: > > > On Sat, Mar 19, 2016 at 08:31:24PM +0000, Richard W.M. Jones wrote: > > > > Is there something I'm missing, or for Linux + -kernel could we use a > > > > much simpler BIOS? > > > > > > The data that Marc Mari collected when comparing qboot with an optimized > > > SeaBIOS/QEMU showed that there's no need for a separate "lightweight > > > firmware" codebase. > > [http://www.seabios.org/pipermail/seabios/2015-July/009554.html] > > The problem is that now we've solved the fw_cfg problem, SeaBIOS is > again a bottleneck (but one of several, and not the biggest). > > > > https://github.com/bonzini/qboot > > I'm actually comparing this to the extremely minimal BIOS used by > kvmtool (and hence by Intel Clear Containers). That "BIOS" (it's > hardly fair to call it that) contains only a the bare minimum calls > necessary to service the Linux startup code. In this scenario Linux > is memcpy'd into the guest memory and jumped to directly, so there is > no separate BIOS loading step at all. The BIOS is only needed because > Linux startup issues BIOS calls eg to get the e820 memory map and do > some VGA mode manipulation.
I think you'll find that if you compile out some features from SeaBIOS, it will be of a similar speed to that "minimal BIOS". Try this: cd /path/to/seabios/ echo -e 'CONFIG_USB=n\nCONFIG_DRIVES=n\nCONFIG_KEYBOARD=n\nCONFIG_MOUSE=n\nCONFIG_WRITABLE_UPPERMEMORY=y\nCONFIG_TCGBIOS=n\nCONFIG_PIRTABLE=n\nCONFIG_MPTABLE=n\nCONFIG_SMBIOS=n\nCONFIG_ACPI=n\nCONFIG_DEBUG_LEVEL=0' > .config make olddefconfig make What time do you get with the above stripped down seabios (the generated bios is in out/bios.bin)? [...] > I'd dearly love to get rid of the sgabios option ROM. It looks like > SeaBIOS nearly supports a full serial console now? Last I checked, one could disable the option rom by adding "-device VGA,romfile=" to the qemu command line. -Kevin