[PATCH] qemu_command: Generate memory only after controllers

Andrea Bolognani abologna at redhat.com
Wed Feb 2 12:44:11 UTC 2022


On Thu, Jan 27, 2022 at 02:47:43PM +0100, Michal Privoznik wrote:
> Currently, memory device (def->mems) part of cmd line is
> generated before any controller. In majority of cases it doesn't
> matter because neither of memory devices live on a bus that's
> created by an exposed controller (e.g. there's no DIMM
> controller, at least not exposed). Except for virtio-mem and
> virtio-pmem, which do have a PCI address. And if it so happens
> that the device goes onto non-default bus (pci.0) starting such
> guest fails, because the controller that creates the desired bus
> wasn't processed yet. QEMU processes arguments in order.
>
> For instance, if virtio-mem has address with bus='0x01' QEMU
> refuses to start with the following message:
>
>   Bus 'pci.1' not found
>
> Similarly for virtio-pmem. I've successfully tested migration and
> changing the order does not affect migration stream.

Maybe we should add a test case where the memory device is not on the
root bus? We can't catch the QEMU error of course, but that would at
least serve as some sort of implicit documentation of the fact that
we expect that scenario to work.

For this patch,

  Reviewed-by: Andrea Bolognani <abologna at redhat.com>

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list