[pve-devel] [PATCH 0/4] add meta info and bandaid for QEMU 6.1 and unpinned q35 machine backward compat

Stefan Reiter s.reiter at proxmox.com
Thu Oct 21 11:34:52 CEST 2021


On 10/21/21 10:36 AM, Thomas Lamprecht wrote:
> First add a new meta property that is currently exclusively set on new
> VM creation and then read-only, initially add the creation time as UNIX
> epoch and the QEMU version that was installed during installation
> (thought about using the one on first start but that actually does not
> gives any more guarantee, so just go for simple).
> 
> Use that information to band aid around a change regarding hotplug in
> QEMU 6.1 that can affected older VMs on fresh start (migration and
> rollback is covered by force-machine mechanisms as always already).
> 
> I'm not 100% convinced of the whole thing, albeit I see some merit in
> the meta property even if we do not go with the last patch, anyhow, I
> proposed this off-list to Dominik (and those thing is partly his idea
> too), Wolfgang, Fabian and Stefan and none of them rejected the idea nor
> communicated a better/more preferred alternative, so I went for it
> (still not steaming from enthusiasm though)

So we're doing all of this to avoid issues with older VMs that expect
"acpi-pci-hotplug-with-bridge-support=off" on Q35 (previously default),
but we still want to set it for new VMs that are created with QEMU 6.1
and never booted with anything older.

But taking a step back, do we actually want the new ACPI hotplug in
general? If we choose to simply leave it be, we could just always add
"acpi-pci-hotplug-with-bridge-support=off" to Q35 on QEMU > 6.1.
Since it's a global property, I think we wouldn't even need to check
machine-type/forcemachine at all, since we'd only make the default
explicit with older ones.

> 
> Thomas Lamprecht (4):
>    config: add new meta property withe creation time
>    config: meta: also save the QEMU version installed during creation
>    tests: cfg2cmd: add a few q35 related tests
>    cfg2cmd: switch off ACPI hotplug on bridges for q35 VMs
> 
>   PVE/API2/Qemu.pm                              |  2 +
>   PVE/QemuServer.pm                             | 62 +++++++++++++++++++
>   .../q35-linux-hostpci-multifunction.conf.cmd  |  1 +
>   test/cfg2cmd/q35-linux-hostpci.conf.cmd       |  1 +
>   test/cfg2cmd/q35-simple-6.0.conf              | 13 ++++
>   test/cfg2cmd/q35-simple-6.0.conf.cmd          | 28 +++++++++
>   test/cfg2cmd/q35-simple-6.1.conf              | 14 +++++
>   test/cfg2cmd/q35-simple-6.1.conf.cmd          | 28 +++++++++
>   test/cfg2cmd/q35-simple-pinned-6.1.conf       | 13 ++++
>   test/cfg2cmd/q35-simple-pinned-6.1.conf.cmd   | 28 +++++++++
>   test/cfg2cmd/q35-simple.conf                  | 13 ++++
>   test/cfg2cmd/q35-simple.conf.cmd              | 29 +++++++++
>   test/cfg2cmd/q35-win10-hostpci.conf.cmd       |  1 +
>   13 files changed, 233 insertions(+)
>   create mode 100644 test/cfg2cmd/q35-simple-6.0.conf
>   create mode 100644 test/cfg2cmd/q35-simple-6.0.conf.cmd
>   create mode 100644 test/cfg2cmd/q35-simple-6.1.conf
>   create mode 100644 test/cfg2cmd/q35-simple-6.1.conf.cmd
>   create mode 100644 test/cfg2cmd/q35-simple-pinned-6.1.conf
>   create mode 100644 test/cfg2cmd/q35-simple-pinned-6.1.conf.cmd
>   create mode 100644 test/cfg2cmd/q35-simple.conf
>   create mode 100644 test/cfg2cmd/q35-simple.conf.cmd
> 




More information about the pve-devel mailing list