Skip to content

i386, aarch64, s390x: deprecate many named CPU models

Merge Request Required Information

Summary of Changes

This marks many CPUs as deprecated across x86_64, s390x and aarch64

Deprecated x86_64 CPUs

"486"
"486-v1"
"athlon"
"athlon-v1"
"Conroe"
"Conroe-v1"
"core2duo"
"core2duo-v1"
"coreduo"
"coreduo-v1"
"Icelake-Client-noTSX"
"Icelake-Client"
"Icelake-Client-v1"
"Icelake-Client-v2"
"Icelake-Client-v3"
"kvm32"
"kvm32-v1"
"kvm64"
"kvm64-v1"
"n270"
"n270-v1"
"Opteron_G1"
"Opteron_G1-v1"
"Opteron_G2"
"Opteron_G2-v1"
"Opteron_G3"
"Opteron_G3-v1"
"Penryn"
"Penryn-v1"
"pentium2"
"pentium2-v1"
"pentium3"
"pentium3-v1"
"pentium"
"pentium-v1"
"phenom"
"phenom-v1"
"qemu32"
"qemu32-v1"
"qemu64"
"qemu64-v1"

s390x CPUs

"qemu"
"z10BC.2-base"
"z10BC.2"
"z10BC-base"
"z10BC"
"z10EC.2-base"
"z10EC.2"
"z10EC.3-base"
"z10EC.3"
"z10EC-base"
"z10EC"
"z114-base"
"z114"
"z13.2-base"
"z13.2"
"z13-base"
"z13s-base"
"z13s"
"z13"
"z196.2-base"
"z196.2"
"z196-base"
"z196"
"z800-base"
"z800"
"z890.2-base"
"z890.2"
"z890.3-base"
"z890.3"
"z890-base"
"z890"
"z900.2-base"
"z900.2"
"z900.3-base"
"z900.3"
"z900-base"
"z900"
"z990.2-base"
"z990.2"
"z990.3-base"
"z990.3"
"z990.4-base"
"z990.4"
"z990.5-base"
"z990.5"
"z990-base"
"z990"
"z9BC.2-base"
"z9BC.2"
"z9BC-base"
"z9BC"
"z9EC.2-base"
"z9EC.2"
"z9EC.3-base"
"z9EC.3"
"z9EC-base"
"z9EC"
"zBC12-base"
"zBC12"
"zEC12.2-base"
"zEC12.2"
"zEC12-base"
"zEC12"

Deprecated aarch64 CPUs

"a64fx"
"cortex-a15"
"cortex-a53"
"cortex-a57"
"cortex-a72"

Those remaining supported are:

Supported x86_64 CPUs

"base"
"Broadwell"
"Broadwell-IBRS"
"Broadwell-noTSX"
"Broadwell-noTSX-IBRS"
"Broadwell-v1"
"Broadwell-v2"
"Broadwell-v3"
"Broadwell-v4"
"Cascadelake-Server"
"Cascadelake-Server-noTSX"
"Cascadelake-Server-v1"
"Cascadelake-Server-v2"
"Cascadelake-Server-v3"
"Cascadelake-Server-v4"
"Cascadelake-Server-v5"
"Cooperlake"
"Cooperlake-v1"
"Cooperlake-v2"
"Denverton"
"Denverton-v1"
"Denverton-v2"
"Denverton-v3"
"Dhyana"
"Dhyana-v1"
"Dhyana-v2"
"EPYC"
"EPYC-IBPB"
"EPYC-Milan"
"EPYC-Milan-v1"
"EPYC-Rome"
"EPYC-Rome-v1"
"EPYC-Rome-v2"
"EPYC-v1"
"EPYC-v2"
"EPYC-v3"
"Haswell"
"Haswell-IBRS"
"Haswell-noTSX"
"Haswell-noTSX-IBRS"
"Haswell-v1"
"Haswell-v2"
"Haswell-v3"
"Haswell-v4"
"host"
"Icelake-Server"
"Icelake-Server-noTSX"
"Icelake-Server-v1"
"Icelake-Server-v2"
"Icelake-Server-v3"
"Icelake-Server-v4"
"Icelake-Server-v5"
"Icelake-Server-v6"
"IvyBridge"
"IvyBridge-IBRS"
"IvyBridge-v1"
"IvyBridge-v2"
"KnightsMill"
"KnightsMill-v1"
"max"
"Nehalem"
"Nehalem-IBRS"
"Nehalem-v1"
"Nehalem-v2"
"Opteron_G4"
"Opteron_G4-v1"
"Opteron_G5"
"Opteron_G5-v1"
"SandyBridge"
"SandyBridge-IBRS"
"SandyBridge-v1"
"SandyBridge-v2"
"Skylake-Client"
"Skylake-Client-IBRS"
"Skylake-Client-noTSX-IBRS"
"Skylake-Client-v1"
"Skylake-Client-v2"
"Skylake-Client-v3"
"Skylake-Client-v4"
"Skylake-Server"
"Skylake-Server-IBRS"
"Skylake-Server-noTSX-IBRS"
"Skylake-Server-v1"
"Skylake-Server-v2"
"Skylake-Server-v3"
"Skylake-Server-v4"
"Skylake-Server-v5"
"Snowridge"
"Snowridge-v1"
"Snowridge-v2"
"Snowridge-v3"
"Snowridge-v4"
"Westmere"
"Westmere-IBRS"
"Westmere-v1"
"Westmere-v2"

Supported s390x CPUs

"gen15a-base"
"gen15a"
"gen15b-base"
"gen15b"
"gen16a-base"
"gen16a"
"gen16b-base"
"gen16b"
"max"
"z14.2-base"
"z14.2"
"z14-base"
"z14"
"z14ZR1-base"
"z14ZR1"

Supported aarch64 CPUs

"max"

The main oddity we get is that the default CPU for all architectures ends up being deprecated

  • x86_64 - 'qemu64'
  • s390x - 'qemu'
  • aarch64 - 'cortex-a57'

eg we get warning messages by default

$ qemu-system-x86_64 -nodefaults
qemu-system-x86_64: Machine type 'pc-i440fx-rhel7.6.0' is deprecated: machine types for previous major releases are deprecated
qemu-system-x86_64: warning: CPU model qemu64-x86_64-cpu is deprecated -- use at least 'Nehalem' or 'Opteron_G4'

$ qemu-system-aarch64 -nodefaults
qemu-system-aarch64: warning: CPU model cortex-a57-arm-cpu is deprecated -- use 'host' or 'max'

$ qemu-system-s390x -nodefaults
qemu-system-s390x: warning: CPU model qemu-s390x-cpu is deprecated -- use at least 'z14'

On the other hand we expect all well written mgmt apps to be explicitly overriding the default CPU models. So if someone see these warnings in practice it would arguably be a good sign, as we would identify an app that needs fixing to give an explicit CPU model

NB on the aarch64 side, some of the deprecated CPU models may ultimately be disabled entirely at compile time by related bug https://bugzilla.redhat.com/show_bug.cgi?id=2066824

Approved Bugzilla Ticket

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2060839

Koji: https://kojihub.stream.rdu2.redhat.com/koji/taskinfo?taskID=1163179

Edited by Daniel P. Berrangé

Merge request reports