On Fri, Apr 01, 2016 at 03:04:15PM -0400, Kevin O'Connor wrote: > On Fri, Apr 01, 2016 at 07:59:02PM +0100, Richard W.M. Jones wrote: > > On Fri, Apr 01, 2016 at 07:41:31PM +0100, Richard W.M. Jones wrote: > > > 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 > > > ---------------------------------------------------------------------- > > > > Actually, CONFIG_RELOCATE_INIT=n looks like it is doing something, but > > the error bars are quite large. > > > > Here's another one that makes a difference: > > > > CONFIG_BOOTORDER=n > > Result: 1099.5ms ±3.7ms > > Are you sure you had CONFIG_DEBUG_LEVEL=0?
Yes, I'm pretty sure. I'm using qemu with -bios bios-fast.bin, and recompiling SeaBIOS under qemu each time (make && make -C roms bios). The test program is: https://github.com/libguestfs/libguestfs/commit/96ce2f9afedc6a7ecb2f7781958c3940255f453b > Otherwise, it doesn't make > sense that disabling CONFIG_BOOTORDER=n would change the boot time. Could it be explained by it avoiding slow access to qemu fw_cfg? > Disabling CONFIG_DEBUG_SERIAL is not enough, because SeaBIOS also > writes to port 0x402 as an internal debugging mechanism. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v