[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] SeaBIOS booting time optimization
From: |
Gerd Hoffmann |
Subject: |
Re: [Qemu-devel] SeaBIOS booting time optimization |
Date: |
Tue, 20 Nov 2018 07:21:09 +0100 |
User-agent: |
NeoMutt/20180716 |
Hi,
> just an update, I enabled the debug prints and I saw two timeouts fired
> with a lot
> of time lost (~780ms between "init timer" and "Scan for VGA ..."),
> putting other prints I discovered that a lot of time is spent in the
> tpm_setup(),
> during the probe of the 2 TPM devices:
>
> 00.548869 init timer
> 00.549677 ./src/post.c:157 platform_hardware_setup
> 00.550182 ./src/hw/tpm_drivers.c:579 tpmhw_probe
> 01.300833 WARNING - Timeout at wait_reg8:81!
> 01.301388 ./src/hw/tpm_drivers.c:579 tpmhw_probe
> 01.331843 WARNING - Timeout at wait_reg8:81!
> 01.332316 ./src/post.c:160 platform_hardware_setup
> 01.333358 Scan for VGA option rom
>
> Indeed, in the probe of the TPM devices (TIS and CRB) there are timeouts of
> 750 ms and 30 ms respectively.
>
> Then, statically disabling TPM and TCG (CONFIG_TCGBIOS) the time spent
> in SeaBIOS goes down from ~846ms to ~56ms:
> # SeaBIOS disabling CONFIG_TCGBIOS
> BIOS=/home/stefano/repos/seabios/out_notcgbios/bios.bin
> qemu_init_end: 40.658371
> fw_start: 40.850395 (+0.192024)
> fw_do_boot: 96.750142 (+55.899747)
> linux_start_boot: 98.880578 (+2.130436)
>
> The tpm_setup() is called after the qemu_cfg_init(), so I think we can
> disable
> this call using some fw_cfg parameters, if we will decide to implement a
> runtime
> approach.
Another possible option is to simply use shorter timeouts on qemu (using
runningOnQEMU()), I'd suggest to check with the TPM maintainers whenever
that is ok.
Background: The drivers in seabios work on both virtual and physical
hardware (you can run seabios as coreboot payload on physical hardware).
There are quite a few places where are delays and timeouts which are
required to work properly on physical hardware. But typically virtual
hardware is alot faster. There is -- for example -- no time needed to
establish a sata link. Link detection in ahci is instant on qemu.
cheers,
Gerd
- [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/16
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefan Hajnoczi, 2018/11/16
- Re: [Qemu-devel] SeaBIOS booting time optimization, Samuel Ortiz, 2018/11/18
- Re: [Qemu-devel] SeaBIOS booting time optimization, Gerd Hoffmann, 2018/11/19
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/19
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefan Hajnoczi, 2018/11/19
- Re: [Qemu-devel] SeaBIOS booting time optimization, Gerd Hoffmann, 2018/11/19
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/19
- Re: [Qemu-devel] SeaBIOS booting time optimization,
Gerd Hoffmann <=
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/20
- Re: [Qemu-devel] SeaBIOS booting time optimization, Gerd Hoffmann, 2018/11/20
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/22
- Re: [Qemu-devel] SeaBIOS booting time optimization, Gerd Hoffmann, 2018/11/22
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/22
- Re: [Qemu-devel] SeaBIOS booting time optimization, Gerd Hoffmann, 2018/11/23
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/23
- Re: [Qemu-devel] SeaBIOS booting time optimization, Kevin O'Connor, 2018/11/23
- Re: [Qemu-devel] SeaBIOS booting time optimization, Stefano Garzarella, 2018/11/23
- Re: [Qemu-devel] [SeaBIOS] SeaBIOS booting time optimization, Kevin O'Connor, 2018/11/20