On Wed, 8 Jul 2015 09:10:14 +0100 Stefan Hajnoczi stefanha@gmail.com wrote:
On Sat, Jul 4, 2015 at 6:57 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Fri, Jul 03, 2015 at 03:12:14PM +0100, Stefan Hajnoczi wrote:
On Fri, Jul 3, 2015 at 2:13 PM, Kevin O'Connor kevin@koconnor.net wrote:
I took a look a month or so ago:
http://article.gmane.org/gmane.comp.emulators.kvm.devel/136207
Last test I ran I had SeaBIOS down to 16ms (not including the time to deploy or jump to the linux kernel). More reductions are also possible - the above was just with Kconfig settings.
I've been measuring the time for different configurations and setups.
The conclusion is that the main bottleneck to boot QEMU is fw_cfg.
Running a default SeaBIOS configuration gives these times (in seconds):
(QEMU startup time is the time between the execution and the first kvm_entry, BIOS startup time is the time between the first kvm_entry and the ROM booting, and fw_cfg is the time between the ROM booting and the jump to the Linux kernel).
QEMU startup time: .033 BIOS startup time: .154 fw_cfg setup time: .375
And these results are more or less the same in QBoot, when using fw_cfg:
QEMU startup time: .026 BIOS startup time: .013 fw_cfg setup time: .373
The difference between SeaBIOS and QBoot is big, but, as I said, this SeaBIOS is not stripped-down. Using the .config that Kevin sent, I can get .01 seconds, but I cannot boot a ROM (I still have to play with the configuration options until it boots). Probably it can do it in less than 20 msec, which not far from QBoot.
On the other side, QBoot with cbfs can boot really fast:
QEMU startup time: .027 Kernel setup time: .017 Total time: .045
And I'll check CoreBoot once more, to try to figure out why it takes so long.
Thanks Marc