[pve-devel] [PATCH-SERIES qemu/qemu-server/manager 0/1] add and set x86-64-v2 as default model for new vms

Alexandre Derumier aderumier at odiso.com
Wed May 17 09:02:43 CEST 2023


we used kvm64 as default cpumodel since the begin of proxmox. (basically, it's like a pentium4 cpu flags).

New distros like rhel9 are compiled to use more modern cpu flags.
(and windows already use new flags since year, and we already add some extra cpu flags)

In 2020, AMD, Intel, Red Hat, and SUSE worked together to define
three microarchitecture levels on top of the historical x86-64

  * x86-64:    original x86_64 baseline instruction set
  * x86-64-v2: vector instructions up to Streaming SIMD
               Extensions 4.2 (SSE4.2)  and Supplemental
               Streaming SIMD Extensions 3 (SSSE3), the
               POPCNT instruction, and CMPXCHG16B
  * x86-64-v3: vector instructions up to AVX2, MOVBE,
               and additional bit-manipulation instructions.
  * x86-64-v4: vector instructions from some of the
               AVX-512 variants.


(x86-64 is kvm64/qemu64 cpu model).

This patch series add new models (patch was found on qemu mailing, but never appplied).

"x86-64-abiX" : (as vX are reserved in qemu for revision versioning)


In addition to theses model, I have enabled aes too.
I think it's really important, because a lot of users use default values and have
bad performance with ssl and other crypto stuffs.

This was discussed on the qemu mailing

Crypto accelerator caveats

Similarly I'm not a huge fan of leaving out the "aes"
instruction for accelerated crypto, as missing "aes" is
also one of the key factors in making qemu64 a bad choice.

If we include 'aes' in x86-64-abi2, then we loose support
for Nehalem hosts.

If we include 'aes' in x86-64-abi3 then we further loose
support for Dhyana hosts (an EPYC derived CPU).

Nahelemn is a 2008 cpu, so I think it's ok, we are in 2013 ;)
(and user can disable aes flag in gui too)

That mean than the minimum compatible cpu for v2 is Intel Westmere (2010)
and Amd Bulldozer (2011).

This patch series add new models, and set x86-64-abi2 model as default in pve-manager
wizard only.
(to not break current vm, where kvm64 is the default when cputype is not defined
in configuration)

The patch serie is for proxmox8/qemu8.
(qemu patch need to be reordered, I'm waiting than Fiona qemu 8.0 patches are applied first)


Alexandre Derumier (1):
  patch: add 0001-add-cpu-models-x86-64-abi.patch

 .../pve/0001-add-cpu-models-x86-64-abi.patch  | 272 ++++++++++++++++++
 debian/patches/series                         |   1 +
 2 files changed, 273 insertions(+)
 create mode 100644 debian/patches/pve/0001-add-cpu-models-x86-64-abi.patch


Alexandre Derumier (1):
  cpuconfig: add new x86-64-abi models

 PVE/QemuServer/CPUConfig.pm | 4 ++++
 1 file changed, 4 insertions(+)


Alexandre Derumier (1):
  qemu: processor : set x86-64-abi2 as default cputype for create wizard

 www/manager6/qemu/OSDefaults.js    |  1 +
 www/manager6/qemu/ProcessorEdit.js | 13 +++++++++++++
 2 files changed, 14 insertions(+)


More information about the pve-devel mailing list