[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [Bug 1685242] Re: ovmf hangs at efi with virtio-net memory

From: Laszlo Ersek \(Red Hat\)
Subject: [Qemu-devel] [Bug 1685242] Re: ovmf hangs at efi with virtio-net memory hotplug
Date: Mon, 18 Feb 2019 22:37:54 -0000

OVMF places the 64-bit PCI MMIO aperture after the memory hotplug area.
If you specify `-m maxmem=1024G`, then accessing 64-bit MMIO BARs of
PCI(e) devices, allocated from the aperture, will require at least 41
address bits. If you use KVM, and nested paging (EPT on Intel, NPT on
AMD) is enabled, and your /proc/cpuinfo on the host reports a smaller
phys address width than 41, then 64-bit PCI MMIO accesses in the guest
will silently fail. You can read more details in

SeaBIOS uses an independent algorithm for aperture placement and BAR

If you remove virtio-net-pci, then your command line ends up without any
PCI(e) device that has a 64-bit MMIO BAR. So the issue is not triggered.

If you use a maxmem of 512G, then 40 bits might suffice. It's possible
that your physical CPU has precisely that many address bits, and so the
behavior could change.

If you attach the OVMF debug log (capture `-debugcon file:debug.log
-global isa-debugcon.iobase=0x402`), I could say more.

Thus far this ticket looks like "NOTABUG" -- use a smaller memory
hotplug area, or disable nested paging (which will come with a
performance penalty).

** Bug watch added: Red Hat Bugzilla #1353591

You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.

  ovmf hangs at efi with virtio-net memory hotplug

Status in QEMU:

Bug description:
  with qemu 2.9 it hangs at the efi stage when memory-hotplug is enabled
  and it has a virtio-net devices

  the ovmf images where compiled from https://github.com/tianocore/edk2
  (current master)


  qemu-system-x86_64 -drive
  'if=pflash,unit=0,format=raw,readonly,file=./OVMF_CODE.fd' -drive
  'if=pflash,unit=1,format=raw,file=./my_OVMF_VARS.fd' -smp 1 -vga std
  -netdev 'type=tap,id=mynet' -device 'virtio-net-pci,netdev=mynet'
  -display sdl -nodefaults -m 'size=1G,slots=256,maxmem=1024G'

  interestingly, it works when you do the following:

  - omit the virtio-net-pci device
  - use seabios
  - use less maxmem, e.g. 512G

  qemu was compiled from source (v2.9.0) with following options:

  ./configure --target-list=x86_64-softmmu --disable-xen --enable-gnutls 
--enable-sdl --enable-linux-aio --enable-rbd --enable-libiscsi 
--disable-smartcard --audio-drv-list="alsa" --enable
  -spice --enable-usb-redir --enable-glusterfs --enable-libusb --disable-gtk 
--enable-xfsctl --enable-numa --disable-strip --enable-jemalloc --enable-virtfs 
--disable-libnfs --disable-fdt --disable-guest-agent --disable-guest-agent-msi

To manage notifications about this bug go to:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]