[pve-devel] [PATCH qemu/qemu-server/docs 00/19] adapt to changes in QEMU machine version deprecation/removal

Fiona Ebner f.ebner at proxmox.com
Fri Jan 3 16:57:43 CET 2025


In QEMU commit a35f8577a0 ("include/hw: add macros for deprecation &
removal of versioned machines"), a new machine version deprecation and
removal policy was introduced. After only 3 years a machine version
will be deprecated while being removed after 6 years.

The deprecation is a bit early considering major PVE releases are
approximately every 2 years. This means that a deprecation warning can
already happen for a machine version that was introduced during the
previous major release. This would scare users for no good reason, so
avoid deprecating machine versions in PVE too early and define a
baseline of machine versions that will be supported throughout a
single major PVE release.

The new policy takes effect only in QEMU 10.1, see QEMU commit
c9fd2d9a48 ("include/hw: temporarily disable deletion of versioned
machine types"). Machine versions <=2.3 were already deprecated for a
while, with PVE also warning about it since commit dec371d9 ("vm
start: add warning about deprecated machine version") in qemu-server
8.0.8. These have been dropped in QEMU 9.1, so the baseline for PVE 8
is 2.4.

Silence the warning from QEMU itself to avoid worrying users, PVE will
warn during VM start.

This series is intended to allow broader QEMU 9.1 rollout. Still
required in addition to this series before PVE 9:
* wiki article about what to look out for when changing machine
  version
* checks in pve8to9 script giving errors/warnings when machine version
  is too old

qemu:

Fiona Ebner (1):
  weaken machine version deprecation warning

 ...-machine-version-deprecation-warning.patch | 56 +++++++++++++++++++
 debian/patches/series                         |  1 +
 2 files changed, 57 insertions(+)
 create mode 100644 debian/patches/pve/0052-weaken-machine-version-deprecation-warning.patch


qemu-server:

Fiona Ebner (17):
  machine: drop unused parameter from assert_valid_machine_property()
    helper
  move get_command_for_arch() helper to helpers module
  helpers: improve name for variable for mapping arch to binary
  move kvm_user_version() function to helpers module
  move get_vm_arch() helper to helpers module
  machine: add default_machine_for_arch() helper
  move get_installed_machine_version() helper to machine module
  move windows_get_pinned_machine_version() function to machine module
  move get_vm_machine() function to machine module
  move meta information handling to its own module
  machine: get vm machine: fallback to creation QEMU version for windows
    starting with 9.1
  machine: add check_and_pin_machine_string() helper
  api: update vm config: pin machine version when switching to windows
    os type
  machine: log informational line when pinning machine version for
    Windows guest
  machine: rename machine_version() function to
    machine_version_at_least()
  machine: adapt to changes in QEMU machine version deprecation/removal
  machine: code cleanup: avoid superfluous augmented assignment operator

 PVE/API2/Qemu.pm                 |  44 ++++---
 PVE/QemuServer.pm                | 203 +++++--------------------------
 PVE/QemuServer/Helpers.pm        |  49 ++++++++
 PVE/QemuServer/Machine.pm        | 138 ++++++++++++++++++++-
 PVE/QemuServer/Makefile          |   1 +
 PVE/QemuServer/MetaInfo.pm       |  47 +++++++
 test/run_config2command_tests.pl |   3 +-
 7 files changed, 290 insertions(+), 195 deletions(-)
 create mode 100644 PVE/QemuServer/MetaInfo.pm


pve-docs:

Fiona Ebner (1):
  qm: machine version

 qm.adoc | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)


Summary over all repositories:
  10 files changed, 373 insertions(+), 195 deletions(-)

-- 
Generated by git-murpp 0.5.0




More information about the pve-devel mailing list