On 2/2/22 13:44, Andrea Bolognani wrote:
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.
Sure, I can do that. I'm not that convinced on its value, but I can
alter an existing test case.
For this patch,
Reviewed-by: Andrea Bolognani <abologna(a)redhat.com>
Pushed, thanks.
Michal