On Fri, Apr 01, 2016 at 11:35:40AM -0400, Kevin O'Connor wrote: > > +# general stuff > > +CONFIG_QEMU=y > > +CONFIG_ROM_SIZE=128 > > Why force a size of 128K - I would think 64K would be fine.
Agreed. Setting this to =0 seems the best thing, and it does fit fine inside 64K. > > +# no input, no boot menu > > +CONFIG_MOUSE=n > > +CONFIG_KEYBOARD=n > [...] > > +CONFIG_DRIVES=n > > I would not recommended disabling CONFIG_MOUSE, CONFIG_KEYBOARD, > CONFIG_DRIVES - I only had those in my config so as to avoid having to > specify all the device drivers. Ideally these would remain on and the > individual device drivers would be disabled. We are always use this in a virtual appliance. Interaction with the user is both impossible and undesirable. It either boots or not, and the whole appliance is discarded in seconds. We're always using -kernel with this SeaBIOS build, so probing drives is never needed. Below are some benchmarks of the other things you mentioned. These are complete appliance boot-to-shutdown times [*not* just SeaBIOS]. All debugging has been disabled, and I'm using a slightly different kernel version, so these runs are not comparable to earlier results I posted. All times are the mean of 10 runs. The ± number is 1 standard deviation from the mean. In my estimation only CONFIG_FW_ROMFILE_LOAD=n seems to make a measurable difference. ---------------------------------------------------------------------- Ordinary qemu SeaBIOS configuration Result: 1227.5ms ±7.7ms -bios boot-fast.bin, as per my previous patch Result: 1113.7ms ±6.4ms Leaving CONFIG_XEN and CONFIG_THREADS at default settings Result: 1111.2ms ±3.8ms CONFIG_USE_SMM=n Result: 1116.0ms ±5.0ms CONFIG_FW_ROMFILE_LOAD=n Result: 1106.6ms ±5.0ms CONFIG_RELOCATE_INIT=n Result: 1104.7ms ±11.2ms ---------------------------------------------------------------------- Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org