f06b222ece
Most importantly, fix forwards and backwards migration with VirtIO-GPU display. Other fixes are for a regression in pflash device (introduced in 8.2) and some fixes for x86(_64) TCG emulation. One of the patches needed to be adapted, because it removed a helper that is still in use in 9.0.0. There also is a revert for a fix in VirtIO PCI devices that turned out to cause some issues, see the revert itself for more details. Lastly, there is a change to move compatibility flags for a new VirtIO-net feature to the correct machine type. The feature was introduced in QEMU 8.2, but the compatibility flags got added to machine version 8.0 instead of 8.1. This breaks backwards migration with machine version 8.1 from a 8.2/9.0 binary to an 8.1 binary, in cases where the guest kernel enables the feature (e.g. Ubuntu 23.10). While that breaks migration with machine version 8.1 from an unpatched to a patched binary, Proxmox VE only ever had 8.2 on the test repository and 9.0 not yet in any public repository. An upstream developer suggested it is the proper fix [0]. Upstream submission [1]. [0]: https://lore.kernel.org/qemu-devel/CACGkMEtZrJuhof+hUGVRvLLQE+8nQE5XmSHpT0NAQ1EpnqfmsA@mail.gmail.com/T/#u [1]: https://lore.kernel.org/qemu-devel/20240517075336.104091-1-f.ebner@proxmox.com/T/#u Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
Date: Mon, 6 Apr 2020 12:16:54 +0200
|
|
Subject: [PATCH] PVE: [Compat]: 4.0 used balloon qemu-4-0-config-size false
|
|
here
|
|
|
|
The underlying issue why this change from upstream to us arised in
|
|
the first place is that QEMU 4.0 was already released at the point we
|
|
run into this migration issue, so we did the then obvious fallback to
|
|
false for virtio-balloon-device qemu-4-0-config-size.
|
|
|
|
QEMU made that switch back in 4.1, where it now uses a backward
|
|
compatible mechanism to detect if the bigger CFG sizes should be
|
|
used, i.e., checking the VIRTIO_BALLOON_F_PAGE_POISON or
|
|
VIRTIO_BALLOON_F_FREE_PAGE_HINT balloon feature flags.
|
|
As for them, upstream released version 4.0 had this to true they keep
|
|
it to true in their compatibility record for the 4.0 machine, to
|
|
allow live migrations from 4.0 to 4.1.
|
|
As for us, downstream released version 4.0 (first public release of
|
|
this QEMU) had this to false, we change it back to false again, for
|
|
the same reason.
|
|
|
|
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
|
|
---
|
|
hw/core/machine.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
|
index 4273de16a0..83f1fc0293 100644
|
|
--- a/hw/core/machine.c
|
|
+++ b/hw/core/machine.c
|
|
@@ -162,7 +162,8 @@ GlobalProperty hw_compat_4_0[] = {
|
|
{ "virtio-vga", "edid", "false" },
|
|
{ "virtio-gpu-device", "edid", "false" },
|
|
{ "virtio-device", "use-started", "false" },
|
|
- { "virtio-balloon-device", "qemu-4-0-config-size", "true" },
|
|
+ // PVE differed from upstream for 4.0 balloon cfg size
|
|
+ { "virtio-balloon-device", "qemu-4-0-config-size", "false" },
|
|
{ "pl031", "migrate-tick-offset", "false" },
|
|
};
|
|
const size_t hw_compat_4_0_len = G_N_ELEMENTS(hw_compat_4_0);
|