[SeaBIOS] Reducing SeaBIOS kernel entry time

Marc Marí marc.mari.barcelo at gmail.com
Wed Jul 8 15:44:33 CEST 2015


On Wed, 8 Jul 2015 09:10:14 +0100
Stefan Hajnoczi <stefanha at gmail.com> wrote:

> On Sat, Jul 4, 2015 at 6:57 PM, Kevin O'Connor <kevin at 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 at 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



More information about the SeaBIOS mailing list