[pve-devel] [PATCH qemu-server 4/4] Add workaround for broken QEMU 4.0.0-3+ for 4.1.1
Stefan Reiter
s.reiter at proxmox.com
Wed Nov 20 15:45:38 CET 2019
Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
---
Based on qemu refactor series[0], especially patch 6, can send a version for
current master as well, but then the refactor has to be rebased because of
qemu_machine_version_enabled -> Helpers::min_version.
Tested with snapshot create/restore between 3.0, 4.0.0-2, 4.0.0-7, 4.0.1-5 and
the new 4.1.1, as well as migration from and to 4.0.0 <-> 4.0.1 <-> 4.1.1.
@Wolfgang B.: Does the comment describe the situation correctly? Tried to make
it somewhat understandable, but not sure if I got everything right...
[0] https://pve.proxmox.com/pipermail/pve-devel/2019-November/040442.html
PVE/QemuServer.pm | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index 74f7ca7..3f42b02 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3899,7 +3899,21 @@ sub config_to_command {
# enable balloon by default, unless explicitly disabled
if (!defined($conf->{balloon}) || $conf->{balloon}) {
$pciaddr = print_pci_addr("balloon0", $bridges, $arch, $machine_type);
- push @$devices, '-device', "virtio-balloon-pci,id=balloon0$pciaddr";
+ my $extra = '';
+
+ # QEMU versions between 4.0.0-3 and latest 4.0.1 trigger a bug that
+ # causes ballooning memory to be misaligned ('qemu-4-0-config-size'
+ # defaults to 'false', even though 4.0(.1) is clearly running). This
+ # makes snapshot restore and migration to newer versions (4.1.0+) fail,
+ # so set 'qemu-4-0-config-size' manually to false, to tell QEMU to
+ # expect the old misaligned memory even though it is running what is
+ # expected to be a patched 4.0(.1) machine type.
+ if ($machine_type =~ m/^pc-.*-4\.0/
+ && PVE::QemuServer::Helpers::min_version($kvmver, 4, 1)) {
+ $extra .= ",qemu-4-0-config-size=false";
+ }
+
+ push @$devices, '-device', "virtio-balloon-pci,id=balloon0$pciaddr$extra";
}
if ($conf->{watchdog}) {
--
2.20.1
More information about the pve-devel
mailing list