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>
58 lines
2.1 KiB
Diff
58 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Fiona Ebner <f.ebner@proxmox.com>
|
|
Date: Thu, 16 May 2024 15:21:07 +0200
|
|
Subject: [PATCH] hw/core/machine: move compatibility flags for VirtIO-net USO
|
|
to machine 8.1
|
|
|
|
Migration from an 8.2 or 9.0 binary to an 8.1 binary with machine
|
|
version 8.1 can fail with:
|
|
|
|
> kvm: Features 0x1c0010130afffa7 unsupported. Allowed features: 0x10179bfffe7
|
|
> kvm: Failed to load virtio-net:virtio
|
|
> kvm: error while loading state for instance 0x0 of device '0000:00:12.0/virtio-net'
|
|
> kvm: load of migration failed: Operation not permitted
|
|
|
|
The series
|
|
|
|
53da8b5a99 virtio-net: Add support for USO features
|
|
9da1684954 virtio-net: Add USO flags to vhost support.
|
|
f03e0cf63b tap: Add check for USO features
|
|
2ab0ec3121 tap: Add USO support to tap device.
|
|
|
|
only landed in QEMU 8.2, so the compatibility flags should be part of
|
|
machine version 8.1.
|
|
|
|
Moving the flags unfortunately breaks forward migration with machine
|
|
version 8.1 from a binary without this patch to a binary with this
|
|
patch when the feature is enabled by the guest.
|
|
|
|
Fixes: 53da8b5a99 ("virtio-net: Add support for USO features")
|
|
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
|
|
---
|
|
hw/core/machine.c | 6 +++---
|
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/hw/core/machine.c b/hw/core/machine.c
|
|
index d33a37a6f6..4273de16a0 100644
|
|
--- a/hw/core/machine.c
|
|
+++ b/hw/core/machine.c
|
|
@@ -46,15 +46,15 @@ GlobalProperty hw_compat_8_1[] = {
|
|
{ "ramfb", "x-migrate", "off" },
|
|
{ "vfio-pci-nohotplug", "x-ramfb-migrate", "off" },
|
|
{ "igb", "x-pcie-flr-init", "off" },
|
|
+ { TYPE_VIRTIO_NET, "host_uso", "off"},
|
|
+ { TYPE_VIRTIO_NET, "guest_uso4", "off"},
|
|
+ { TYPE_VIRTIO_NET, "guest_uso6", "off"},
|
|
};
|
|
const size_t hw_compat_8_1_len = G_N_ELEMENTS(hw_compat_8_1);
|
|
|
|
GlobalProperty hw_compat_8_0[] = {
|
|
{ "migration", "multifd-flush-after-each-section", "on"},
|
|
{ TYPE_PCI_DEVICE, "x-pcie-ari-nextfn-1", "on" },
|
|
- { TYPE_VIRTIO_NET, "host_uso", "off"},
|
|
- { TYPE_VIRTIO_NET, "guest_uso4", "off"},
|
|
- { TYPE_VIRTIO_NET, "guest_uso6", "off"},
|
|
};
|
|
const size_t hw_compat_8_0_len = G_N_ELEMENTS(hw_compat_8_0);
|
|
|