2024-09-26 07:25:53 +00:00
|
|
|
From a7d5687a80eca95a1c39b73bebb9d478f3adfb0c Mon Sep 17 00:00:00 2001
|
|
|
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
|
|
Date: Wed, 3 Jul 2024 13:44:41 +0100
|
|
|
|
Subject: Add downstream x86_64 versioned 'pc' & 'q35' machine types
|
2018-11-08 17:02:33 +00:00
|
|
|
|
|
|
|
Adding changes to add RHEL machine types for x86_64 architecture.
|
|
|
|
|
|
|
|
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
2021-09-02 06:44:51 +00:00
|
|
|
|
2021-12-16 07:06:10 +00:00
|
|
|
Rebase notes (6.1.0):
|
2021-09-02 06:44:51 +00:00
|
|
|
- Update qemu64 cpu spec
|
|
|
|
|
2022-04-20 07:49:16 +00:00
|
|
|
Rebase notes (7.0.0):
|
|
|
|
- Reset alias for all machine-types except latest one
|
|
|
|
|
2023-09-04 08:00:24 +00:00
|
|
|
Rebase notes (8.0.0):
|
2023-04-20 06:33:14 +00:00
|
|
|
- remove legacy_no_rng_seed usage (removed upstream)
|
|
|
|
|
2023-09-04 08:00:24 +00:00
|
|
|
Rebase notes (8.1.0):
|
|
|
|
- default_nic_model to default_nic
|
|
|
|
|
2024-09-26 07:25:53 +00:00
|
|
|
Rebase notes (9.1.0 rc0)
|
|
|
|
- Merged pc_q35_machine_rhel_options back into
|
|
|
|
pc_q35_machine_options to reduce delta to upstream
|
|
|
|
- Convert to new DEFINE_(I440FX|Q35)_MACHINE macros
|
|
|
|
|
2021-12-16 07:06:10 +00:00
|
|
|
Merged patches (6.1.0):
|
2021-09-02 06:44:51 +00:00
|
|
|
- 59c284ad3b x86: Add x86 rhel8.5 machine types
|
|
|
|
- a8868b42fe redhat: x86: Enable 'kvm-asyncpf-int' by default
|
|
|
|
- a3995e2eff Remove RHEL 7.0.0 machine type (only x86_64 changes)
|
|
|
|
- ad3190a79b Remove RHEL 7.1.0 machine type (only x86_64 changes)
|
|
|
|
- 84bbe15d4e Remove RHEL 7.2.0 machine type (only x86_64 changes)
|
|
|
|
- 0215eb3356 Remove RHEL 7.3.0 machine types (only x86_64 changes)
|
|
|
|
- af69d1ca6e Remove RHEL 7.4.0 machine types (only x86_64 changes)
|
|
|
|
- 8f7a74ab78 Remove RHEL 7.5.0 machine types (only x86_64 changes)
|
2022-04-20 07:49:16 +00:00
|
|
|
|
|
|
|
Merged patches (7.0.0):
|
|
|
|
- eae7d8dd3c x86/rhel machine types: Add pc_rhel_8_5_compat
|
|
|
|
- 6762f56469 x86/rhel machine types: Wire compat into q35 and i440fx
|
|
|
|
- 5762101438 rhel machine types/x86: set prefer_sockets
|
|
|
|
- 9ba9ddc632 x86: Add q35 RHEL 8.6.0 machine type
|
|
|
|
- 6110d865e5 x86: Add q35 RHEL 9.0.0 machine type
|
|
|
|
- dcc64971bf RHEL: mark old machine types as deprecated (partialy)
|
|
|
|
- 6b396f182b RHEL: disable "seqpacket" for "vhost-vsock-device" in rhel8.6.0
|
2022-09-05 08:13:56 +00:00
|
|
|
|
2023-09-04 08:00:24 +00:00
|
|
|
Merged patches (7.1.0):
|
2022-09-05 08:13:56 +00:00
|
|
|
- 38b89dc245 pc: Move s3/s4 suspend disabling to compat (only hw/i386/pc.c chunk)
|
|
|
|
- 1d6439527a WRB: Introduce RHEL 9.0.0 hw compat structure (x86_64 specific changes)
|
|
|
|
- 35b5c8554f target/i386: deprecate CPUs older than x86_64-v2 ABI
|
2022-12-15 06:04:15 +00:00
|
|
|
|
2023-09-04 08:00:24 +00:00
|
|
|
Merged patches (7.2.0):
|
2022-12-15 06:04:15 +00:00
|
|
|
- 0be2889fa2 Introduce upstream 7.0 compat changes (only applicable parts)
|
2023-04-20 06:33:14 +00:00
|
|
|
|
2023-09-04 08:00:24 +00:00
|
|
|
Merged patches (8.0.0):
|
2023-04-20 06:33:14 +00:00
|
|
|
- f33ca8aed4 x86: rhel 9.2.0 machine type
|
2023-09-04 08:00:24 +00:00
|
|
|
|
|
|
|
Merged patches (8.1.0):
|
|
|
|
- bd5d81d286 Add RHEL 9.2.0 compat structure (x86_64 part)
|
|
|
|
- c6eaf73add redhat: hw/i386/pc: Update x86 machine type compatibility for QEMU 8.0.0 update
|
|
|
|
- 6cbf496e5e hw/acpi: Mark acpi blobs as resizable on RHEL pc machines version 7.6 and above
|
2024-01-02 09:26:49 +00:00
|
|
|
|
|
|
|
Merged patches (8.2.0):
|
|
|
|
- 4ee284aca9 Add machine types compat bits. (partial)
|
|
|
|
- 719e2ac147 Fix x86 machine type compatibility for qemu-kvm 8.1.0
|
2024-04-24 09:32:21 +00:00
|
|
|
|
|
|
|
Merged patches (9.0.0 rc0):
|
|
|
|
- 9149e2bc8f x86: rhel 9.2.0 machine type compat fix
|
2024-09-26 07:25:53 +00:00
|
|
|
|
|
|
|
Merged patches (9.1.0 rc0):
|
|
|
|
- 043ad5ce97 Add upstream compatibility bits (partial)
|
|
|
|
|
|
|
|
Merged patches (9.1.0 rc2):
|
|
|
|
- 06ee79be2b introduce pc_rhel_9_5_compat
|
|
|
|
- 5cfd133600 target/i386: add guest-phys-bits cpu property (partial)
|
|
|
|
- 46206b821b hw/i386/sev: Use legacy SEV VM types for older machine types (partial)
|
|
|
|
- 414fe1d14f hw/i386/pc_sysfw: Alias rather than copy isa-bios region (partial)
|
|
|
|
- 0b6825631a i386/sev: Don't allow automatic fallback to legacy KVM_SEV*_INIT (partial)
|
2018-11-08 17:02:33 +00:00
|
|
|
---
|
2024-04-24 09:32:21 +00:00
|
|
|
hw/i386/fw_cfg.c | 2 +-
|
2024-09-26 07:25:53 +00:00
|
|
|
hw/i386/pc.c | 167 +++++++++++++++++++++++++++++-
|
|
|
|
hw/i386/pc_piix.c | 105 ++++++++++++++++++-
|
|
|
|
hw/i386/pc_q35.c | 207 +++++++++++++++++++++++++++++++++++--
|
2022-09-05 08:13:56 +00:00
|
|
|
include/hw/boards.h | 2 +
|
2024-09-26 07:25:53 +00:00
|
|
|
include/hw/i386/pc.h | 36 +++++++
|
|
|
|
target/i386/cpu.c | 21 ++++
|
2021-09-02 06:44:51 +00:00
|
|
|
target/i386/kvm/kvm-cpu.c | 1 +
|
2021-04-30 07:28:51 +00:00
|
|
|
target/i386/kvm/kvm.c | 4 +
|
|
|
|
tests/qtest/pvpanic-test.c | 5 +-
|
2024-09-26 07:25:53 +00:00
|
|
|
10 files changed, 537 insertions(+), 13 deletions(-)
|
2018-11-08 17:02:33 +00:00
|
|
|
|
2024-04-24 09:32:21 +00:00
|
|
|
diff --git a/hw/i386/fw_cfg.c b/hw/i386/fw_cfg.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 33ef280420..a322709ffa 100644
|
2024-04-24 09:32:21 +00:00
|
|
|
--- a/hw/i386/fw_cfg.c
|
|
|
|
+++ b/hw/i386/fw_cfg.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -73,7 +73,7 @@ void fw_cfg_build_smbios(PCMachineState *pcms, FWCfgState *fw_cfg,
|
2024-04-24 09:32:21 +00:00
|
|
|
|
|
|
|
if (pcmc->smbios_defaults) {
|
|
|
|
/* These values are guest ABI, do not change */
|
|
|
|
- smbios_set_defaults("QEMU", mc->desc, mc->name,
|
|
|
|
+ smbios_set_defaults("Red Hat", "KVM", mc->desc,
|
|
|
|
pcmc->smbios_stream_product, pcmc->smbios_stream_version);
|
|
|
|
}
|
2024-09-26 07:25:53 +00:00
|
|
|
|
2018-11-08 17:02:33 +00:00
|
|
|
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 7779c88a91..fa0e42d072 100644
|
2018-11-08 17:02:33 +00:00
|
|
|
--- a/hw/i386/pc.c
|
|
|
|
+++ b/hw/i386/pc.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -276,6 +276,169 @@ const size_t pc_compat_2_4_len = G_N_ELEMENTS(pc_compat_2_4);
|
|
|
|
*/
|
|
|
|
#define PC_FW_DATA (0x20000 + 0x8000)
|
2019-05-07 21:00:36 +00:00
|
|
|
|
|
|
|
+/* This macro is for changes to properties that are RHEL specific,
|
|
|
|
+ * different to the current upstream and to be applied to the latest
|
|
|
|
+ * machine type.
|
|
|
|
+ */
|
|
|
|
+GlobalProperty pc_rhel_compat[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
+ /* we don't support s3/s4 suspend */
|
|
|
|
+ { "PIIX4_PM", "disable_s3", "1" },
|
|
|
|
+ { "PIIX4_PM", "disable_s4", "1" },
|
|
|
|
+ { "ICH9-LPC", "disable_s3", "1" },
|
|
|
|
+ { "ICH9-LPC", "disable_s4", "1" },
|
|
|
|
+
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { TYPE_X86_CPU, "host-phys-bits", "on" },
|
|
|
|
+ { TYPE_X86_CPU, "host-phys-bits-limit", "48" },
|
2020-05-13 01:03:43 +00:00
|
|
|
+ { TYPE_X86_CPU, "vmx-entry-load-perf-global-ctrl", "off" },
|
|
|
|
+ { TYPE_X86_CPU, "vmx-exit-load-perf-global-ctrl", "off" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* bz 1508330 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "vfio-pci", "x-no-geforce-quirks", "on" },
|
2021-09-02 06:44:51 +00:00
|
|
|
+ /* bz 1941397 */
|
|
|
|
+ { TYPE_X86_CPU, "kvm-asyncpf-int", "on" },
|
2019-05-07 21:00:36 +00:00
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_compat_len = G_N_ELEMENTS(pc_rhel_compat);
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+GlobalProperty pc_rhel_9_5_compat[] = {
|
|
|
|
+ /* pc_rhel_9_5_compat from pc_compat_pc_9_0 (backported from 9.1) */
|
|
|
|
+ { TYPE_X86_CPU, "guest-phys-bits", "0" },
|
|
|
|
+ /* pc_rhel_9_5_compat from pc_compat_pc_9_0 (backported from 9.1) */
|
|
|
|
+ { "sev-guest", "legacy-vm-type", "on" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_9_5_compat_len = G_N_ELEMENTS(pc_rhel_9_5_compat);
|
|
|
|
+
|
2024-01-02 09:26:49 +00:00
|
|
|
+GlobalProperty pc_rhel_9_3_compat[] = {
|
|
|
|
+ /* pc_rhel_9_3_compat from pc_compat_8_0 */
|
|
|
|
+ { "virtio-mem", "unplugged-inaccessible", "auto" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_9_3_compat_len = G_N_ELEMENTS(pc_rhel_9_3_compat);
|
|
|
|
+
|
2023-09-04 08:00:24 +00:00
|
|
|
+GlobalProperty pc_rhel_9_2_compat[] = {
|
|
|
|
+ /* pc_rhel_9_2_compat from pc_compat_7_2 */
|
|
|
|
+ { "ICH9-LPC", "noreboot", "true" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_9_2_compat_len = G_N_ELEMENTS(pc_rhel_9_2_compat);
|
|
|
|
+
|
2022-09-05 08:13:56 +00:00
|
|
|
+GlobalProperty pc_rhel_9_0_compat[] = {
|
|
|
|
+ /* pc_rhel_9_0_compat from pc_compat_6_2 */
|
|
|
|
+ { "virtio-mem", "unplugged-inaccessible", "off" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_9_0_compat_len = G_N_ELEMENTS(pc_rhel_9_0_compat);
|
|
|
|
+
|
2022-04-20 07:49:16 +00:00
|
|
|
+GlobalProperty pc_rhel_8_5_compat[] = {
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_0 */
|
|
|
|
+ { "qemu64" "-" TYPE_X86_CPU, "family", "6" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_0 */
|
|
|
|
+ { "qemu64" "-" TYPE_X86_CPU, "model", "6" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_0 */
|
|
|
|
+ { "qemu64" "-" TYPE_X86_CPU, "stepping", "3" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_0 */
|
|
|
|
+ { TYPE_X86_CPU, "x-vendor-cpuid-only", "off" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_0 */
|
|
|
|
+ { "ICH9-LPC", ACPI_PM_PROP_ACPI_PCIHP_BRIDGE, "off" },
|
|
|
|
+
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_1 */
|
|
|
|
+ { TYPE_X86_CPU, "hv-version-id-build", "0x1bbc" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_1 */
|
|
|
|
+ { TYPE_X86_CPU, "hv-version-id-major", "0x0006" },
|
|
|
|
+ /* pc_rhel_8_5_compat from pc_compat_6_1 */
|
|
|
|
+ { TYPE_X86_CPU, "hv-version-id-minor", "0x0001" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_8_5_compat_len = G_N_ELEMENTS(pc_rhel_8_5_compat);
|
|
|
|
+
|
2021-09-02 06:44:51 +00:00
|
|
|
+GlobalProperty pc_rhel_8_4_compat[] = {
|
|
|
|
+ /* pc_rhel_8_4_compat from pc_compat_5_2 */
|
|
|
|
+ { "ICH9-LPC", "x-smi-cpu-hotunplug", "off" },
|
|
|
|
+ { TYPE_X86_CPU, "kvm-asyncpf-int", "off" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_8_4_compat_len = G_N_ELEMENTS(pc_rhel_8_4_compat);
|
|
|
|
+
|
2021-04-30 07:28:51 +00:00
|
|
|
+GlobalProperty pc_rhel_8_3_compat[] = {
|
|
|
|
+ /* pc_rhel_8_3_compat from pc_compat_5_1 */
|
|
|
|
+ { "ICH9-LPC", "x-smi-cpu-hotplug", "off" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_8_3_compat_len = G_N_ELEMENTS(pc_rhel_8_3_compat);
|
|
|
|
+
|
2020-11-13 13:09:35 +00:00
|
|
|
+GlobalProperty pc_rhel_8_2_compat[] = {
|
|
|
|
+ /* pc_rhel_8_2_compat from pc_compat_4_2 */
|
|
|
|
+ { "mch", "smbase-smram", "off" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_8_2_compat_len = G_N_ELEMENTS(pc_rhel_8_2_compat);
|
|
|
|
+
|
2019-12-13 13:10:42 +00:00
|
|
|
+/* pc_rhel_8_1_compat is empty since pc_4_1_compat is */
|
|
|
|
+GlobalProperty pc_rhel_8_1_compat[] = { };
|
|
|
|
+const size_t pc_rhel_8_1_compat_len = G_N_ELEMENTS(pc_rhel_8_1_compat);
|
|
|
|
+
|
2019-11-15 14:35:04 +00:00
|
|
|
+GlobalProperty pc_rhel_8_0_compat[] = {
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "intel-iommu", "dma-drain", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G3" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G4" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G4" "-" TYPE_X86_CPU, "npt", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G4" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G5" "-" TYPE_X86_CPU, "rdtscp", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G5" "-" TYPE_X86_CPU, "npt", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Opteron_G5" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "EPYC" "-" TYPE_X86_CPU, "npt", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "EPYC" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "EPYC-IBPB" "-" TYPE_X86_CPU, "npt", "off" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "EPYC-IBPB" "-" TYPE_X86_CPU, "nrip-save", "off" },
|
|
|
|
+ /** The mpx=on entries from pc_compat_3_1 are in pc_rhel_7_6_compat **/
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { "Cascadelake-Server" "-" TYPE_X86_CPU, "stepping", "5" },
|
|
|
|
+ /* pc_rhel_8_0_compat from pc_compat_3_1 */
|
|
|
|
+ { TYPE_X86_CPU, "x-intel-pt-auto-level", "off" },
|
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_8_0_compat_len = G_N_ELEMENTS(pc_rhel_8_0_compat);
|
|
|
|
+
|
2019-05-07 21:00:36 +00:00
|
|
|
+/* Similar to PC_COMPAT_3_0 + PC_COMPAT_2_12, but:
|
|
|
|
+ * all of the 2_12 stuff was already in 7.6 from bz 1481253
|
|
|
|
+ * x-migrate-smi-count comes from PC_COMPAT_2_11 but
|
|
|
|
+ * is really tied to kernel version so keep it off on 7.x
|
|
|
|
+ * machine types irrespective of host.
|
|
|
|
+ */
|
|
|
|
+GlobalProperty pc_rhel_7_6_compat[] = {
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_3_0 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { TYPE_X86_CPU, "x-hv-synic-kvm-only", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_3_0 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Server" "-" TYPE_X86_CPU, "pku", "off" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_3_0 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Server-IBRS" "-" TYPE_X86_CPU, "pku", "off" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { TYPE_X86_CPU, "x-migrate-smi-count", "off" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Client-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Skylake-Server-IBRS" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Cascadelake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Icelake-Client" "-" TYPE_X86_CPU, "mpx", "on" },
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* pc_rhel_7_6_compat from pc_compat_2_11 */
|
2019-08-15 04:45:41 +00:00
|
|
|
+ { "Icelake-Server" "-" TYPE_X86_CPU, "mpx", "on" },
|
2019-05-07 21:00:36 +00:00
|
|
|
+};
|
|
|
|
+const size_t pc_rhel_7_6_compat_len = G_N_ELEMENTS(pc_rhel_7_6_compat);
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * The PC_RHEL_*_COMPAT serve the same purpose for RHEL-7 machine
|
|
|
|
+ * types as the PC_COMPAT_* do for upstream types.
|
|
|
|
+ * PC_RHEL_7_*_COMPAT apply both to i440fx and q35 types.
|
|
|
|
+ */
|
|
|
|
+
|
2020-05-13 01:03:43 +00:00
|
|
|
GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled)
|
2019-05-07 21:00:36 +00:00
|
|
|
{
|
2020-05-13 01:03:43 +00:00
|
|
|
GSIState *s;
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -1767,6 +1930,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
|
|
|
|
pcmc->kvmclock_create_always = true;
|
2024-04-24 09:32:21 +00:00
|
|
|
x86mc->apic_xrupt_override = true;
|
2018-11-08 17:02:33 +00:00
|
|
|
assert(!mc->get_hotplug_handler);
|
2019-05-07 21:00:36 +00:00
|
|
|
+ mc->async_pf_vmexit_disable = false;
|
|
|
|
mc->get_hotplug_handler = pc_get_hotplug_handler;
|
2019-11-15 14:35:04 +00:00
|
|
|
mc->hotplug_allowed = pc_hotplug_allowed;
|
2024-09-26 07:25:53 +00:00
|
|
|
mc->auto_enable_numa_with_memhp = true;
|
|
|
|
@@ -1774,7 +1938,8 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
|
2021-12-16 07:06:10 +00:00
|
|
|
mc->has_hotpluggable_cpus = true;
|
2020-11-13 13:09:35 +00:00
|
|
|
mc->default_boot_order = "cad";
|
2018-11-08 17:02:33 +00:00
|
|
|
mc->block_default_type = IF_IDE;
|
|
|
|
- mc->max_cpus = 255;
|
|
|
|
+ /* 240: max CPU count for RHEL */
|
|
|
|
+ mc->max_cpus = 240;
|
|
|
|
mc->reset = pc_machine_reset;
|
2019-11-15 14:35:04 +00:00
|
|
|
mc->wakeup = pc_machine_wakeup;
|
2018-11-08 17:02:33 +00:00
|
|
|
hc->pre_plug = pc_machine_device_pre_plug_cb;
|
|
|
|
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 67107b174a..c93e78e896 100644
|
2018-11-08 17:02:33 +00:00
|
|
|
--- a/hw/i386/pc_piix.c
|
|
|
|
+++ b/hw/i386/pc_piix.c
|
2024-04-24 09:32:21 +00:00
|
|
|
@@ -52,6 +52,7 @@
|
2018-11-08 17:02:33 +00:00
|
|
|
#include "qapi/error.h"
|
|
|
|
#include "qemu/error-report.h"
|
2020-07-08 13:37:45 +00:00
|
|
|
#include "sysemu/xen.h"
|
2018-11-08 17:02:33 +00:00
|
|
|
+#include "migration/migration.h"
|
|
|
|
#ifdef CONFIG_XEN
|
|
|
|
#include <xen/hvm/hvm_info_table.h>
|
|
|
|
#include "hw/xen/xen_pt.h"
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -445,8 +446,8 @@ static void pc_i440fx_init(MachineState *machine)
|
|
|
|
pc_init1(machine, TYPE_I440FX_PCI_DEVICE);
|
|
|
|
}
|
2018-11-08 17:02:33 +00:00
|
|
|
|
2024-09-26 07:25:53 +00:00
|
|
|
-#define DEFINE_I440FX_MACHINE(major, minor) \
|
|
|
|
- DEFINE_PC_VER_MACHINE(pc_i440fx, "pc-i440fx", pc_i440fx_init, major, minor);
|
|
|
|
+#define DEFINE_I440FX_MACHINE(major, minor, micro) \
|
|
|
|
+ DEFINE_PC_VER_MACHINE(pc_i440fx, "pc-i440fx", pc_i440fx_init, major, minor, micro);
|
|
|
|
|
|
|
|
#if 0 /* Disabled for Red Hat Enterprise Linux */
|
|
|
|
static void pc_i440fx_machine_options(MachineClass *m)
|
|
|
|
@@ -826,3 +827,103 @@ static void xenfv_machine_3_1_options(MachineClass *m)
|
2020-05-13 01:03:43 +00:00
|
|
|
DEFINE_PC_MACHINE(xenfv, "xenfv-3.1", pc_xen_hvm_init,
|
2024-09-26 07:25:53 +00:00
|
|
|
xenfv_machine_3_1_options);
|
2018-11-08 17:02:33 +00:00
|
|
|
#endif
|
|
|
|
+
|
|
|
|
+/* Red Hat Enterprise Linux machine types */
|
|
|
|
+
|
|
|
|
+/* Options for the latest rhel7 machine type */
|
|
|
|
+static void pc_machine_rhel7_options(MachineClass *m)
|
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
|
|
|
+ m->family = "pc_piix_Y";
|
2021-04-30 07:28:51 +00:00
|
|
|
+ m->default_machine_opts = "firmware=bios-256k.bin,hpet=off";
|
|
|
|
+ pcmc->pci_root_uid = 0;
|
2023-09-04 08:00:24 +00:00
|
|
|
+ m->default_nic = "e1000";
|
2018-11-08 17:02:33 +00:00
|
|
|
+ m->default_display = "std";
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->no_parallel = 1;
|
2020-11-13 13:09:35 +00:00
|
|
|
+ m->numa_mem_supported = true;
|
|
|
|
+ m->auto_enable_numa_with_memdev = false;
|
2019-11-15 14:35:04 +00:00
|
|
|
+ machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
|
2019-05-07 21:00:36 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len);
|
2018-11-08 17:02:33 +00:00
|
|
|
+ m->alias = "pc";
|
|
|
|
+ m->is_default = 1;
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->smp_props.prefer_sockets = true;
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pcmc->isa_bios_alias = false;
|
2018-11-08 17:02:33 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_i440fx_rhel_machine_7_6_0_options(MachineClass *m)
|
2018-11-08 17:02:33 +00:00
|
|
|
+{
|
2019-11-15 14:35:04 +00:00
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-01-02 09:26:49 +00:00
|
|
|
+ ObjectClass *oc = OBJECT_CLASS(m);
|
2018-11-08 17:02:33 +00:00
|
|
|
+ pc_machine_rhel7_options(m);
|
|
|
|
+ m->desc = "RHEL 7.6.0 PC (i440FX + PIIX, 1996)";
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->async_pf_vmexit_disable = true;
|
2019-11-15 14:35:04 +00:00
|
|
|
+ m->smbus_no_migration_support = true;
|
2022-04-20 07:49:16 +00:00
|
|
|
+
|
2019-11-15 14:35:04 +00:00
|
|
|
+ pcmc->pvh_enabled = false;
|
|
|
|
+ pcmc->default_cpu_version = CPU_VERSION_LEGACY;
|
2021-04-30 07:28:51 +00:00
|
|
|
+ pcmc->kvmclock_create_always = false;
|
|
|
|
+ /* From pc_i440fx_5_1_machine_options() */
|
|
|
|
+ pcmc->pci_root_uid = 1;
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* From pc_i440fx_7_0_machine_options() */
|
2023-04-20 06:33:14 +00:00
|
|
|
+ pcmc->enforce_amd_1tb_hole = false;
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* From pc_i440fx_8_0_machine_options() */
|
|
|
|
+ pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_32;
|
2024-04-24 09:32:21 +00:00
|
|
|
+ /* From pc_i440fx_8_1_machine_options() */
|
|
|
|
+ pcmc->broken_32bit_mem_addr_check = true;
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* Introduced in QEMU 8.2 */
|
|
|
|
+ pcmc->default_south_bridge = TYPE_PIIX3_DEVICE;
|
|
|
|
+
|
|
|
|
+ object_class_property_add_enum(oc, "x-south-bridge", "PCSouthBridgeOption",
|
|
|
|
+ &PCSouthBridgeOption_lookup,
|
|
|
|
+ pc_get_south_bridge,
|
|
|
|
+ pc_set_south_bridge);
|
|
|
|
+ object_class_property_set_description(oc, "x-south-bridge",
|
|
|
|
+ "Use a different south bridge than PIIX3");
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_5_compat,
|
|
|
|
+ pc_rhel_9_5_compat_len);
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_5,
|
|
|
|
+ hw_compat_rhel_9_5_len);
|
2024-01-02 09:26:49 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_4,
|
|
|
|
+ hw_compat_rhel_9_4_len);
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_3,
|
|
|
|
+ hw_compat_rhel_9_3_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_3_compat,
|
|
|
|
+ pc_rhel_9_3_compat_len);
|
2023-09-04 08:00:24 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_2,
|
|
|
|
+ hw_compat_rhel_9_2_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_2_compat,
|
|
|
|
+ pc_rhel_9_2_compat_len);
|
2022-12-15 06:04:15 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_1,
|
|
|
|
+ hw_compat_rhel_9_1_len);
|
2022-09-05 08:13:56 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_0,
|
|
|
|
+ hw_compat_rhel_9_0_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_0_compat,
|
|
|
|
+ pc_rhel_9_0_compat_len);
|
2022-04-20 07:49:16 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_6,
|
|
|
|
+ hw_compat_rhel_8_6_len);
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_5,
|
|
|
|
+ hw_compat_rhel_8_5_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_5_compat,
|
|
|
|
+ pc_rhel_8_5_compat_len);
|
2021-04-30 07:28:51 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_4,
|
|
|
|
+ hw_compat_rhel_8_4_len);
|
2021-09-02 06:44:51 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_4_compat,
|
|
|
|
+ pc_rhel_8_4_compat_len);
|
2021-04-30 07:28:51 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_3,
|
|
|
|
+ hw_compat_rhel_8_3_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_3_compat,
|
|
|
|
+ pc_rhel_8_3_compat_len);
|
2020-11-13 13:09:35 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_2,
|
|
|
|
+ hw_compat_rhel_8_2_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_2_compat,
|
|
|
|
+ pc_rhel_8_2_compat_len);
|
2019-12-13 13:10:42 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_1, hw_compat_rhel_8_1_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_1_compat, pc_rhel_8_1_compat_len);
|
2019-11-15 14:35:04 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_0, hw_compat_rhel_8_0_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_0_compat, pc_rhel_8_0_compat_len);
|
2019-05-07 21:00:36 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_7_6, hw_compat_rhel_7_6_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_7_6_compat, pc_rhel_7_6_compat_len);
|
2018-11-08 17:02:33 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_I440FX_MACHINE(7, 6, 0);
|
2018-11-08 17:02:33 +00:00
|
|
|
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 5fb283f2df..76f0ac1acd 100644
|
2018-11-08 17:02:33 +00:00
|
|
|
--- a/hw/i386/pc_q35.c
|
|
|
|
+++ b/hw/i386/pc_q35.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -338,20 +338,19 @@ static void pc_q35_machine_options(MachineClass *m)
|
|
|
|
pcmc->pci_root_uid = 0;
|
|
|
|
pcmc->default_cpu_version = 1;
|
2018-11-08 17:02:33 +00:00
|
|
|
|
2024-09-26 07:25:53 +00:00
|
|
|
- m->family = "pc_q35";
|
|
|
|
- m->desc = "Standard PC (Q35 + ICH9, 2009)";
|
2018-11-08 17:02:33 +00:00
|
|
|
+ m->family = "pc_q35_Z";
|
2024-09-26 07:25:53 +00:00
|
|
|
m->units_per_default_bus = 1;
|
|
|
|
- m->default_machine_opts = "firmware=bios-256k.bin";
|
2021-04-30 07:28:51 +00:00
|
|
|
+ m->default_machine_opts = "firmware=bios-256k.bin,hpet=off";
|
2024-09-26 07:25:53 +00:00
|
|
|
m->default_display = "std";
|
|
|
|
m->default_nic = "e1000e";
|
|
|
|
- m->default_kernel_irqchip_split = false;
|
|
|
|
m->no_floppy = 1;
|
|
|
|
- m->max_cpus = 4096;
|
|
|
|
- m->no_parallel = !module_object_class_by_name(TYPE_ISA_PARALLEL);
|
|
|
|
+ m->max_cpus = 710;
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->no_parallel = 1;
|
2024-09-26 07:25:53 +00:00
|
|
|
machine_class_allow_dynamic_sysbus_dev(m, TYPE_AMD_IOMMU_DEVICE);
|
|
|
|
machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE);
|
|
|
|
machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE);
|
|
|
|
- machine_class_allow_dynamic_sysbus_dev(m, TYPE_VMBUS_BRIDGE);
|
2018-11-08 17:02:33 +00:00
|
|
|
+ m->alias = "q35";
|
2019-05-07 21:00:36 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len);
|
2024-09-26 07:25:53 +00:00
|
|
|
compat_props_add(m->compat_props,
|
|
|
|
pc_q35_compat_defaults, pc_q35_compat_defaults_len);
|
|
|
|
}
|
|
|
|
@@ -670,3 +669,197 @@ static void pc_q35_machine_2_4_options(MachineClass *m)
|
|
|
|
|
|
|
|
DEFINE_Q35_MACHINE(2, 4);
|
|
|
|
#endif /* Disabled for Red Hat Enterprise Linux */
|
2018-11-08 17:02:33 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+/* Red Hat Enterprise Linux machine types */
|
2024-01-02 09:26:49 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_9_4_0_options(MachineClass *m)
|
2024-01-02 09:26:49 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_machine_options(m);
|
2024-01-02 09:26:49 +00:00
|
|
|
+ m->desc = "RHEL-9.4.0 PC (Q35 + ICH9, 2009)";
|
|
|
|
+ pcmc->smbios_stream_product = "RHEL";
|
|
|
|
+ pcmc->smbios_stream_version = "9.4.0";
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pcmc->isa_bios_alias = false;
|
2024-01-02 09:26:49 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_5_compat,
|
|
|
|
+ pc_rhel_9_5_compat_len);
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_5,
|
|
|
|
+ hw_compat_rhel_9_5_len);
|
2023-04-20 06:33:14 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(9, 4, 0);
|
|
|
|
+
|
|
|
|
+static void pc_q35_rhel_machine_9_2_0_options(MachineClass *m)
|
2023-04-20 06:33:14 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_9_4_0_options(m);
|
2023-04-20 06:33:14 +00:00
|
|
|
+ m->desc = "RHEL-9.2.0 PC (Q35 + ICH9, 2009)";
|
2024-01-02 09:26:49 +00:00
|
|
|
+ m->alias = NULL;
|
2023-04-20 06:33:14 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL";
|
|
|
|
+ pcmc->smbios_stream_version = "9.2.0";
|
2023-09-04 08:00:24 +00:00
|
|
|
+
|
2024-01-02 09:26:49 +00:00
|
|
|
+ /* From pc_q35_8_0_machine_options() */
|
|
|
|
+ pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_32;
|
2024-04-24 09:32:21 +00:00
|
|
|
+ /* From pc_q35_8_1_machine_options() */
|
|
|
|
+ pcmc->broken_32bit_mem_addr_check = true;
|
2024-01-02 09:26:49 +00:00
|
|
|
+
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_4,
|
|
|
|
+ hw_compat_rhel_9_4_len);
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_3,
|
|
|
|
+ hw_compat_rhel_9_3_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_3_compat,
|
|
|
|
+ pc_rhel_9_3_compat_len);
|
2023-09-04 08:00:24 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_2,
|
|
|
|
+ hw_compat_rhel_9_2_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_2_compat,
|
|
|
|
+ pc_rhel_9_2_compat_len);
|
2023-04-20 06:33:14 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(9, 2, 0);
|
2023-04-20 06:33:14 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_9_0_0_options(MachineClass *m)
|
2022-04-20 07:49:16 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_9_2_0_options(m);
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->desc = "RHEL-9.0.0 PC (Q35 + ICH9, 2009)";
|
2023-04-20 06:33:14 +00:00
|
|
|
+ m->alias = NULL;
|
2022-04-20 07:49:16 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL";
|
|
|
|
+ pcmc->smbios_stream_version = "9.0.0";
|
2023-04-20 06:33:14 +00:00
|
|
|
+ pcmc->enforce_amd_1tb_hole = false;
|
2022-12-15 06:04:15 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_1,
|
|
|
|
+ hw_compat_rhel_9_1_len);
|
2022-09-05 08:13:56 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_9_0,
|
|
|
|
+ hw_compat_rhel_9_0_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_9_0_compat,
|
|
|
|
+ pc_rhel_9_0_compat_len);
|
2022-04-20 07:49:16 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(9, 0, 0);
|
2022-04-20 07:49:16 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_6_0_options(MachineClass *m)
|
2022-04-20 07:49:16 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_9_0_0_options(m);
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->desc = "RHEL-8.6.0 PC (Q35 + ICH9, 2009)";
|
|
|
|
+ m->alias = NULL;
|
|
|
|
+
|
|
|
|
+ pcmc->smbios_stream_product = "RHEL-AV";
|
|
|
|
+ pcmc->smbios_stream_version = "8.6.0";
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_6,
|
|
|
|
+ hw_compat_rhel_8_6_len);
|
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 6, 0);
|
2021-09-02 06:44:51 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_5_0_options(MachineClass *m)
|
2021-09-02 06:44:51 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_6_0_options(m);
|
2021-09-02 06:44:51 +00:00
|
|
|
+ m->desc = "RHEL-8.5.0 PC (Q35 + ICH9, 2009)";
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->alias = NULL;
|
2021-09-02 06:44:51 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL-AV";
|
|
|
|
+ pcmc->smbios_stream_version = "8.5.0";
|
2022-04-20 07:49:16 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_5,
|
|
|
|
+ hw_compat_rhel_8_5_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_5_compat,
|
|
|
|
+ pc_rhel_8_5_compat_len);
|
|
|
|
+ m->smp_props.prefer_sockets = true;
|
2021-09-02 06:44:51 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 5, 0);
|
2021-04-30 07:28:51 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_4_0_options(MachineClass *m)
|
2021-04-30 07:28:51 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_5_0_options(m);
|
2021-04-30 07:28:51 +00:00
|
|
|
+ m->desc = "RHEL-8.4.0 PC (Q35 + ICH9, 2009)";
|
2021-09-02 06:44:51 +00:00
|
|
|
+ m->alias = NULL;
|
2021-04-30 07:28:51 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL-AV";
|
|
|
|
+ pcmc->smbios_stream_version = "8.4.0";
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_4,
|
|
|
|
+ hw_compat_rhel_8_4_len);
|
2021-09-02 06:44:51 +00:00
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_4_compat,
|
|
|
|
+ pc_rhel_8_4_compat_len);
|
2021-04-30 07:28:51 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 4, 0);
|
2021-04-30 07:28:51 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_3_0_options(MachineClass *m)
|
2020-11-13 13:09:35 +00:00
|
|
|
+{
|
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_4_0_options(m);
|
2020-11-13 13:09:35 +00:00
|
|
|
+ m->desc = "RHEL-8.3.0 PC (Q35 + ICH9, 2009)";
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->alias = NULL;
|
2020-11-13 13:09:35 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL-AV";
|
|
|
|
+ pcmc->smbios_stream_version = "8.3.0";
|
2021-04-30 07:28:51 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_3,
|
|
|
|
+ hw_compat_rhel_8_3_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_3_compat,
|
|
|
|
+ pc_rhel_8_3_compat_len);
|
|
|
|
+ /* From pc_q35_5_1_machine_options() */
|
|
|
|
+ pcmc->kvmclock_create_always = false;
|
|
|
|
+ /* From pc_q35_5_1_machine_options() */
|
|
|
|
+ pcmc->pci_root_uid = 1;
|
2020-11-13 13:09:35 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 3, 0);
|
2020-11-13 13:09:35 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_2_0_options(MachineClass *m)
|
2019-12-13 13:10:42 +00:00
|
|
|
+{
|
2020-05-13 01:03:43 +00:00
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_3_0_options(m);
|
2019-12-13 13:10:42 +00:00
|
|
|
+ m->desc = "RHEL-8.2.0 PC (Q35 + ICH9, 2009)";
|
2022-04-20 07:49:16 +00:00
|
|
|
+ m->alias = NULL;
|
2020-11-13 13:09:35 +00:00
|
|
|
+ m->numa_mem_supported = true;
|
|
|
|
+ m->auto_enable_numa_with_memdev = false;
|
2020-05-13 01:03:43 +00:00
|
|
|
+ pcmc->smbios_stream_product = "RHEL-AV";
|
|
|
|
+ pcmc->smbios_stream_version = "8.2.0";
|
2020-11-13 13:09:35 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_2,
|
|
|
|
+ hw_compat_rhel_8_2_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_2_compat,
|
|
|
|
+ pc_rhel_8_2_compat_len);
|
2019-12-13 13:10:42 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 2, 0);
|
2019-11-15 14:35:04 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_1_0_options(MachineClass *m)
|
2019-11-15 14:35:04 +00:00
|
|
|
+{
|
2020-05-13 01:03:43 +00:00
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_2_0_options(m);
|
2019-11-15 14:35:04 +00:00
|
|
|
+ m->desc = "RHEL-8.1.0 PC (Q35 + ICH9, 2009)";
|
2019-12-13 13:10:42 +00:00
|
|
|
+ m->alias = NULL;
|
2020-05-13 01:03:43 +00:00
|
|
|
+ pcmc->smbios_stream_product = NULL;
|
|
|
|
+ pcmc->smbios_stream_version = NULL;
|
2019-12-13 13:10:42 +00:00
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_1, hw_compat_rhel_8_1_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_1_compat, pc_rhel_8_1_compat_len);
|
2019-11-15 14:35:04 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 1, 0);
|
2019-11-15 14:35:04 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_8_0_0_options(MachineClass *m)
|
2019-05-07 21:00:36 +00:00
|
|
|
+{
|
2019-11-15 14:35:04 +00:00
|
|
|
+ PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_1_0_options(m);
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->desc = "RHEL-8.0.0 PC (Q35 + ICH9, 2009)";
|
2019-11-15 14:35:04 +00:00
|
|
|
+ m->smbus_no_migration_support = true;
|
|
|
|
+ m->alias = NULL;
|
|
|
|
+ pcmc->pvh_enabled = false;
|
|
|
|
+ pcmc->default_cpu_version = CPU_VERSION_LEGACY;
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_8_0, hw_compat_rhel_8_0_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_8_0_compat, pc_rhel_8_0_compat_len);
|
2019-05-07 21:00:36 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(8, 0, 0);
|
2019-05-07 21:00:36 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+static void pc_q35_rhel_machine_7_6_0_options(MachineClass *m)
|
2018-11-08 17:02:33 +00:00
|
|
|
+{
|
2024-09-26 07:25:53 +00:00
|
|
|
+ pc_q35_rhel_machine_8_0_0_options(m);
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->alias = NULL;
|
2018-11-08 17:02:33 +00:00
|
|
|
+ m->desc = "RHEL-7.6.0 PC (Q35 + ICH9, 2009)";
|
2019-05-07 21:00:36 +00:00
|
|
|
+ m->async_pf_vmexit_disable = true;
|
|
|
|
+ compat_props_add(m->compat_props, hw_compat_rhel_7_6, hw_compat_rhel_7_6_len);
|
|
|
|
+ compat_props_add(m->compat_props, pc_rhel_7_6_compat, pc_rhel_7_6_compat_len);
|
2018-11-08 17:02:33 +00:00
|
|
|
+}
|
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+DEFINE_Q35_MACHINE_BUGFIX(7, 6, 0);
|
|
|
|
+
|
2019-05-07 21:00:36 +00:00
|
|
|
diff --git a/include/hw/boards.h b/include/hw/boards.h
|
2024-09-26 07:25:53 +00:00
|
|
|
index 32c4642f5a..85b43e3d0d 100644
|
2019-05-07 21:00:36 +00:00
|
|
|
--- a/include/hw/boards.h
|
|
|
|
+++ b/include/hw/boards.h
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -289,6 +289,8 @@ struct MachineClass {
|
2019-05-07 21:00:36 +00:00
|
|
|
strList *allowed_dynamic_sysbus_devices;
|
|
|
|
bool auto_enable_numa_with_memhp;
|
2020-07-14 14:45:56 +00:00
|
|
|
bool auto_enable_numa_with_memdev;
|
2019-05-07 21:00:36 +00:00
|
|
|
+ /* RHEL only */
|
|
|
|
+ bool async_pf_vmexit_disable;
|
|
|
|
bool ignore_boot_device_suffixes;
|
2020-11-13 13:09:35 +00:00
|
|
|
bool smbus_no_migration_support;
|
|
|
|
bool nvdimm_supported;
|
2018-11-08 17:02:33 +00:00
|
|
|
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
|
2024-09-26 07:25:53 +00:00
|
|
|
index 8776a3c937..75c9271cdd 100644
|
2018-11-08 17:02:33 +00:00
|
|
|
--- a/include/hw/i386/pc.h
|
|
|
|
+++ b/include/hw/i386/pc.h
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -302,6 +302,42 @@ extern const size_t pc_compat_2_4_len;
|
|
|
|
extern GlobalProperty pc_compat_2_3[];
|
|
|
|
extern const size_t pc_compat_2_3_len;
|
2018-11-08 17:02:33 +00:00
|
|
|
|
2019-05-07 21:00:36 +00:00
|
|
|
+extern GlobalProperty pc_rhel_compat[];
|
|
|
|
+extern const size_t pc_rhel_compat_len;
|
2018-11-08 17:02:33 +00:00
|
|
|
+
|
2024-09-26 07:25:53 +00:00
|
|
|
+extern GlobalProperty pc_rhel_9_5_compat[];
|
|
|
|
+extern const size_t pc_rhel_9_5_compat_len;
|
|
|
|
+
|
2024-01-02 09:26:49 +00:00
|
|
|
+extern GlobalProperty pc_rhel_9_3_compat[];
|
|
|
|
+extern const size_t pc_rhel_9_3_compat_len;
|
|
|
|
+
|
2023-09-04 08:00:24 +00:00
|
|
|
+extern GlobalProperty pc_rhel_9_2_compat[];
|
|
|
|
+extern const size_t pc_rhel_9_2_compat_len;
|
|
|
|
+
|
2022-09-05 08:13:56 +00:00
|
|
|
+extern GlobalProperty pc_rhel_9_0_compat[];
|
|
|
|
+extern const size_t pc_rhel_9_0_compat_len;
|
|
|
|
+
|
2022-04-20 07:49:16 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_5_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_5_compat_len;
|
|
|
|
+
|
2021-09-02 06:44:51 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_4_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_4_compat_len;
|
|
|
|
+
|
2021-04-30 07:28:51 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_3_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_3_compat_len;
|
|
|
|
+
|
2020-11-13 13:09:35 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_2_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_2_compat_len;
|
|
|
|
+
|
2019-12-13 13:10:42 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_1_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_1_compat_len;
|
|
|
|
+
|
2019-11-15 14:35:04 +00:00
|
|
|
+extern GlobalProperty pc_rhel_8_0_compat[];
|
|
|
|
+extern const size_t pc_rhel_8_0_compat_len;
|
|
|
|
+
|
2019-05-07 21:00:36 +00:00
|
|
|
+extern GlobalProperty pc_rhel_7_6_compat[];
|
|
|
|
+extern const size_t pc_rhel_7_6_compat_len;
|
|
|
|
+
|
2022-09-05 08:13:56 +00:00
|
|
|
#define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \
|
|
|
|
static void pc_machine_##suffix##_class_init(ObjectClass *oc, void *data) \
|
|
|
|
{ \
|
|
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 85ef7452c0..ed278dd4a1 100644
|
2022-09-05 08:13:56 +00:00
|
|
|
--- a/target/i386/cpu.c
|
|
|
|
+++ b/target/i386/cpu.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2411,9 +2411,13 @@ static const CPUCaches epyc_genoa_cache_info = {
|
2022-09-05 08:13:56 +00:00
|
|
|
* PT in VMX operation
|
2019-05-07 21:00:36 +00:00
|
|
|
*/
|
2022-09-05 08:13:56 +00:00
|
|
|
|
|
|
|
+#define RHEL_CPU_DEPRECATION \
|
|
|
|
+ "use at least 'Nehalem' / 'Opteron_G4', or 'host' / 'max'"
|
|
|
|
+
|
|
|
|
static const X86CPUDefinition builtin_x86_defs[] = {
|
|
|
|
{
|
|
|
|
.name = "qemu64",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 0xd,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 15,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2434,6 +2438,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "phenom",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 5,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 16,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2466,6 +2471,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "core2duo",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 10,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2508,6 +2514,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "kvm64",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 0xd,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 15,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2549,6 +2556,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "qemu32",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 4,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2563,6 +2571,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "kvm32",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 5,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 15,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2593,6 +2602,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "coreduo",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 10,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2626,6 +2636,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "486",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 1,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 4,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2638,6 +2649,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "pentium",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 1,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 5,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2650,6 +2662,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "pentium2",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 2,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2662,6 +2675,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "pentium3",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 3,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2674,6 +2688,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "athlon",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 2,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2689,6 +2704,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "n270",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 10,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2714,6 +2730,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "Conroe",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 10,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -2754,6 +2771,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "Penryn",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 10,
|
|
|
|
.vendor = CPUID_VENDOR_INTEL,
|
|
|
|
.family = 6,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -4762,6 +4780,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "Opteron_G1",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 5,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 15,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -4782,6 +4801,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "Opteron_G2",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 5,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 15,
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -4804,6 +4824,7 @@ static const X86CPUDefinition builtin_x86_defs[] = {
|
2022-09-05 08:13:56 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
.name = "Opteron_G3",
|
|
|
|
+ .deprecation_note = RHEL_CPU_DEPRECATION,
|
|
|
|
.level = 5,
|
|
|
|
.vendor = CPUID_VENDOR_AMD,
|
|
|
|
.family = 16,
|
2021-09-02 06:44:51 +00:00
|
|
|
diff --git a/target/i386/kvm/kvm-cpu.c b/target/i386/kvm/kvm-cpu.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 6bf8dcfc60..684e731cbc 100644
|
2021-09-02 06:44:51 +00:00
|
|
|
--- a/target/i386/kvm/kvm-cpu.c
|
|
|
|
+++ b/target/i386/kvm/kvm-cpu.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -178,6 +178,7 @@ static PropValue kvm_default_props[] = {
|
2018-11-08 17:02:33 +00:00
|
|
|
{ "acpi", "off" },
|
|
|
|
{ "monitor", "off" },
|
|
|
|
{ "svm", "off" },
|
|
|
|
+ { "kvm-pv-unhalt", "on" },
|
|
|
|
{ NULL, NULL },
|
|
|
|
};
|
|
|
|
|
2021-04-30 07:28:51 +00:00
|
|
|
diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index 2fa88ef1e3..2b28c18693 100644
|
2021-04-30 07:28:51 +00:00
|
|
|
--- a/target/i386/kvm/kvm.c
|
|
|
|
+++ b/target/i386/kvm/kvm.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -4244,6 +4244,7 @@ static int kvm_get_msrs(X86CPU *cpu)
|
2019-05-07 21:00:36 +00:00
|
|
|
struct kvm_msr_entry *msrs = cpu->kvm_msr_buf->entries;
|
|
|
|
int ret, i;
|
|
|
|
uint64_t mtrr_top_bits;
|
|
|
|
+ MachineClass *mc = MACHINE_GET_CLASS(qdev_get_machine());
|
|
|
|
|
|
|
|
kvm_msr_buf_reset(cpu);
|
|
|
|
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -4636,6 +4637,9 @@ static int kvm_get_msrs(X86CPU *cpu)
|
2019-05-07 21:00:36 +00:00
|
|
|
break;
|
|
|
|
case MSR_KVM_ASYNC_PF_EN:
|
|
|
|
env->async_pf_en_msr = msrs[i].data;
|
|
|
|
+ if (mc->async_pf_vmexit_disable) {
|
|
|
|
+ env->async_pf_en_msr &= ~(1ULL << 2);
|
|
|
|
+ }
|
|
|
|
break;
|
2020-11-13 13:09:35 +00:00
|
|
|
case MSR_KVM_ASYNC_PF_INT:
|
|
|
|
env->async_pf_int_msr = msrs[i].data;
|
2021-04-30 07:28:51 +00:00
|
|
|
diff --git a/tests/qtest/pvpanic-test.c b/tests/qtest/pvpanic-test.c
|
2024-09-26 07:25:53 +00:00
|
|
|
index d49d2ba931..c18f63e255 100644
|
2021-04-30 07:28:51 +00:00
|
|
|
--- a/tests/qtest/pvpanic-test.c
|
|
|
|
+++ b/tests/qtest/pvpanic-test.c
|
2024-09-26 07:25:53 +00:00
|
|
|
@@ -18,7 +18,7 @@ static void test_panic_nopause(void)
|
2021-04-30 07:28:51 +00:00
|
|
|
QDict *response, *data;
|
|
|
|
QTestState *qts;
|
|
|
|
|
|
|
|
- qts = qtest_init("-device pvpanic -action panic=none");
|
|
|
|
+ qts = qtest_init("-M q35 -device pvpanic -action panic=none");
|
|
|
|
|
|
|
|
val = qtest_inb(qts, 0x505);
|
2024-09-26 07:25:53 +00:00
|
|
|
g_assert_cmpuint(val, ==, PVPANIC_EVENTS);
|
|
|
|
@@ -41,7 +41,8 @@ static void test_panic(void)
|
2021-04-30 07:28:51 +00:00
|
|
|
QDict *response, *data;
|
|
|
|
QTestState *qts;
|
|
|
|
|
|
|
|
- qts = qtest_init("-device pvpanic -action panic=pause");
|
|
|
|
+ /* RHEL: Use q35 */
|
|
|
|
+ qts = qtest_init("-M q35 -device pvpanic -action panic=pause");
|
|
|
|
|
|
|
|
val = qtest_inb(qts, 0x505);
|
2024-09-26 07:25:53 +00:00
|
|
|
g_assert_cmpuint(val, ==, PVPANIC_EVENTS);
|
2018-11-08 17:02:33 +00:00
|
|
|
--
|
2023-09-04 08:00:24 +00:00
|
|
|
2.39.3
|
2018-11-08 17:02:33 +00:00
|
|
|
|