[SeaBIOS] Marvell 88SE9230 passthrough in KVM takes long time to boot

Laszlo Ersek lersek at redhat.com
Thu Aug 9 14:07:14 CEST 2018


+Andrea; comments below

On 08/08/18 23:11, Alex Williamson wrote:
> On Wed, 8 Aug 2018 14:11:16 +0200
> Gerd Hoffmann <kraxel at redhat.com> wrote:
> 
>> On Sun, Jul 29, 2018 at 01:49:10PM +0200, Konrad Eisele wrote:
>>> I'm passing through a Marvell 88SE9230 card to a KVM guest under
>>> Ubuntu 18.04. The card is a Sata controller with 4 ports.
>>> The option rom of the Marvell 88SE9230 card shows on a normal boot a
>>> bios screen. When pressing CTRL-m quick enough, you  can interrupt the
>>> bootprocess and enter a menue wherer you can define raid
>>> arrays.
>>>
>>> When booting seabios inside KVM the bootprocess is very slow.
>>> There is a 1 min holdtime where the cpu is about 30%. The screen is
>>> black with only the seabios version string shown. I suspect that
>>> the passed-through Marvell 88SE9230 cards option roms causes this
>>> behaviour.
>>> Maybe the scanning for option rom cause the slow bootprocess?
>>>
>>> In the seabios boot case no bios menue is shown, after
>>> around 1 min the boot continues.
>>>
>>> Is it possible to disable the options rom processing? Is there some
>>> documentation about this (How can I configure it for Ubuntu) ?  
>>
>> Set the romfile option to the empty string (for vfio-pci, on the qemu
>> command line) should do that (qemu will not expose the rom to the guest
>> then).
> 
> Typically rombar=0 on the QEMU command line is how to disable the option
> ROM for an assigned device, or
> 
> <rom bar='off'/>
> 
> in libvirt.  Thanks,

On a tangent:

Not sure about assigned devices, but for emulated devices, romfile=''
"scales" better. With rombar=0, the oprom is still loaded into fw_cfg as
a "genrom", and if multiple devices of the same type attempt to do that,
the genroms will conflict, and QEMU will not launch:

  https://bugzilla.redhat.com/show_bug.cgi?id=1425058#c19

For this reason (as well), libvirt now supports a further attribute for
the <rom> element, namely @enabled. It maps to the "romfile" property:

  https://bugzilla.redhat.com/show_bug.cgi?id=1425058#c34

By now I've updated all my long-term domains that used to specify <rom
bar='off'/>, to <rom enabled='no'/>.

Thanks!
Laszlo



More information about the SeaBIOS mailing list