From e24bd10cc257be4b257e57eec59cee019b7e0f09 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Mon, 30 Sep 2024 06:57:07 -0400 Subject: [PATCH] * Mon Sep 30 2024 Miroslav Rezanina - 9.1.0-2 - kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-x86-create-pc-q35-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-arm-create-virt-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-x86-remove-deprecated-rhel-machine-types.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-remove-stale-compat-definitions.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] - kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch [RHEL-38374] - kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch [RHEL-57028] - Resolves: RHEL-29002 (Remove the existing deprecated machine types in RHEL-10) - Resolves: RHEL-29003 (Deprecate RHEL-9 machine types in RHEL-10) - Resolves: RHEL-35587 (Create a pc-i440fx-rhel10.0 machine type) - Resolves: RHEL-38411 ([Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10) - Resolves: RHEL-45141 (Introduce virt-rhel10.0 arm-virt machine type [aarch64]) - Resolves: RHEL-38374 (aarch64 SMBIOS 'Manufacturer' and 'Product Name' differ from x86 ones [rhel-10]) - Resolves: RHEL-57028 (fsfreeze hooks break on the systems first restorecon [rhel-10]) --- ...or-Shaoqin-Huang-shahuang-redhat.com.patch | 76 ++++ ...e-new-virt-machine-type-for-rhel-9.6.patch | 49 ++ ...-create-virt-machine-type-for-rhel10.patch | 45 ++ ...-Update-the-logfile-path-of-qga-fsfr.patch | 39 ++ kvm-remove-stale-compat-definitions.patch | 425 ++++++++++++++++++ ...new-pc-q35-machine-type-for-rhel-9.6.patch | 50 +++ ...te-pc-i440fx-machine-type-for-rhel10.patch | 79 ++++ ...reate-pc-q35-machine-type-for-rhel10.patch | 59 +++ ...remove-deprecated-rhel-machine-types.patch | 274 +++++++++++ qemu-kvm.spec | 73 ++- 10 files changed, 1168 insertions(+), 1 deletion(-) create mode 100644 kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch create mode 100644 kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch create mode 100644 kvm-arm-create-virt-machine-type-for-rhel10.patch create mode 100644 kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch create mode 100644 kvm-remove-stale-compat-definitions.patch create mode 100644 kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch create mode 100644 kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch create mode 100644 kvm-x86-create-pc-q35-machine-type-for-rhel10.patch create mode 100644 kvm-x86-remove-deprecated-rhel-machine-types.patch diff --git a/kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch b/kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch new file mode 100644 index 0000000..f1ddc9b --- /dev/null +++ b/kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch @@ -0,0 +1,76 @@ +From 5110e137294163ae43a61376485a7f610bf496f3 Mon Sep 17 00:00:00 2001 +From: Shaoqin Huang +Date: Wed, 22 May 2024 03:23:28 -0400 +Subject: [PATCH 8/9] RH-Author: Shaoqin Huang + RH-MergeRequest: 271: hw/arm/virt: Fix Manufacturer and Product Name in + emulated SMBIOS mode RH-Jira: RHEL-38374 RH-Acked-by: Cornelia Huck + RH-Acked-by: Miroslav Rezanina + RH-Acked-by: Eric Auger RH-Commit: [8/8] + d1daacc6ed427094cf92a9ecc66af8171950c718 (shahuang/qemu-kvm) + +--- + hw/arm/virt.c | 15 +++++++++++++-- + include/hw/arm/virt.h | 1 + + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 907c26c635..078098ec3a 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -1711,14 +1711,21 @@ static void virt_build_smbios(VirtMachineState *vms) + uint8_t *smbios_tables, *smbios_anchor; + size_t smbios_tables_len, smbios_anchor_len; + struct smbios_phys_mem_area mem_array; ++ const char *manufacturer = "QEMU"; + const char *product = "QEMU Virtual Machine"; ++ const char *version = vmc->smbios_old_sys_ver ? "1.0" : mc->name; + + if (kvm_enabled()) { + product = "KVM Virtual Machine"; + } + +- smbios_set_defaults("QEMU", product, +- vmc->smbios_old_sys_ver ? "1.0" : mc->name, ++ if (!vmc->manufacturer_product_compat) { ++ manufacturer = "Red Hat"; ++ product = "KVM"; ++ version = mc->desc; ++ } ++ ++ smbios_set_defaults(manufacturer, product, version, + NULL, NULL); + + /* build the array of physical mem area from base_memmap */ +@@ -3593,6 +3600,8 @@ DEFINE_VIRT_MACHINE(9, 6, 0) + + static void virt_rhel_machine_9_4_0_options(MachineClass *mc) + { ++ VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc)); ++ + virt_rhel_machine_9_6_0_options(mc); + + /* From virt_machine_9_0_options() */ +@@ -3600,6 +3609,8 @@ static void virt_rhel_machine_9_4_0_options(MachineClass *mc) + + compat_props_add(mc->compat_props, hw_compat_rhel_10_0, hw_compat_rhel_10_0_len); + compat_props_add(mc->compat_props, hw_compat_rhel_9_5, hw_compat_rhel_9_5_len); ++ ++ vmc->manufacturer_product_compat = true; + } + DEFINE_VIRT_MACHINE(9, 4, 0) + +diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h +index a4d937ed45..2fc30a7626 100644 +--- a/include/hw/arm/virt.h ++++ b/include/hw/arm/virt.h +@@ -134,6 +134,7 @@ struct VirtMachineClass { + bool no_cpu_topology; + bool no_tcg_lpa2; + bool no_ns_el2_virt_timer_irq; ++ bool manufacturer_product_compat; + }; + + struct VirtMachineState { +-- +2.39.3 + diff --git a/kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch b/kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch new file mode 100644 index 0000000..f32bd03 --- /dev/null +++ b/kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch @@ -0,0 +1,49 @@ +From 60d59db99f0527eaf0ce8d3a18d8333aa77a03f2 Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Thu, 5 Sep 2024 13:53:13 +0200 +Subject: [PATCH 2/9] arm: create new virt machine type for rhel 9.6 + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [2/7] 0179f5a7a177f53b58ff9b82bd09217e183f258b (seott1/cos-qemu-kvm) + +Signed-off-by: Sebastian Ott +--- + hw/arm/virt.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index 31a71a7f45..f94be8656c 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3580,15 +3580,22 @@ static void virt_machine_2_6_options(MachineClass *mc) + DEFINE_VIRT_MACHINE(2, 6) + #endif /* disabled for RHEL */ + ++static void virt_rhel_machine_9_6_0_options(MachineClass *mc) ++{ ++} ++DEFINE_VIRT_MACHINE_AS_LATEST(9, 6, 0) ++ + static void virt_rhel_machine_9_4_0_options(MachineClass *mc) + { ++ virt_rhel_machine_9_6_0_options(mc); ++ + /* From virt_machine_9_0_options() */ + mc->smbios_memory_device_size = 16 * GiB; + + compat_props_add(mc->compat_props, hw_compat_rhel_10_0, hw_compat_rhel_10_0_len); + compat_props_add(mc->compat_props, hw_compat_rhel_9_5, hw_compat_rhel_9_5_len); + } +-DEFINE_VIRT_MACHINE_AS_LATEST(9, 4, 0) ++DEFINE_VIRT_MACHINE(9, 4, 0) + + static void virt_rhel_machine_9_2_0_options(MachineClass *mc) + { +-- +2.39.3 + diff --git a/kvm-arm-create-virt-machine-type-for-rhel10.patch b/kvm-arm-create-virt-machine-type-for-rhel10.patch new file mode 100644 index 0000000..422f99a --- /dev/null +++ b/kvm-arm-create-virt-machine-type-for-rhel10.patch @@ -0,0 +1,45 @@ +From 704596b05f7dcdfa98857b71fed295d0005d4acc Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Thu, 22 Aug 2024 17:08:26 +0200 +Subject: [PATCH 5/9] arm: create virt machine type for rhel10 + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [5/7] cd8f31de4cd189cd1de69e68c84d823e43473e8c (seott1/cos-qemu-kvm) + +Create a new default virt machine type for rhel 10. + +Signed-off-by: Sebastian Ott +--- + hw/arm/virt.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/hw/arm/virt.c b/hw/arm/virt.c +index f94be8656c..907c26c635 100644 +--- a/hw/arm/virt.c ++++ b/hw/arm/virt.c +@@ -3580,10 +3580,16 @@ static void virt_machine_2_6_options(MachineClass *mc) + DEFINE_VIRT_MACHINE(2, 6) + #endif /* disabled for RHEL */ + ++static void virt_rhel_machine_10_0_0_options(MachineClass *mc) ++{ ++} ++DEFINE_VIRT_MACHINE_AS_LATEST(10, 0, 0) ++ + static void virt_rhel_machine_9_6_0_options(MachineClass *mc) + { ++ virt_rhel_machine_10_0_0_options(mc); + } +-DEFINE_VIRT_MACHINE_AS_LATEST(9, 6, 0) ++DEFINE_VIRT_MACHINE(9, 6, 0) + + static void virt_rhel_machine_9_4_0_options(MachineClass *mc) + { +-- +2.39.3 + diff --git a/kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch b/kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch new file mode 100644 index 0000000..08328b0 --- /dev/null +++ b/kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch @@ -0,0 +1,39 @@ +From 18c53acff0c50491dddac1e9d023b9ad5f540f7f Mon Sep 17 00:00:00 2001 +From: Dehan Meng +Date: Wed, 4 Sep 2024 16:39:51 +0800 +Subject: [PATCH 9/9] qemu-guest-agent: Update the logfile path of + qga-fsfreeze-hook.log + +RH-Author: Dehan Meng +RH-MergeRequest: 269: qemu-guest-agent: Update the logfile path of qga-fsfreeze-hook.log +RH-Jira: RHEL-57028 +RH-Acked-by: Miroslav Rezanina +RH-Commit: [45/45] eebec1989edade851807d775de75d4d14da01cf2 (6-dehan/src_centosupstream_qemu-kvm) + +Since '/var/log/qga-fsfreeze-hook.log' is not included to proper +selinux context 'system_u:object_r:virt_qemu_ga_log_t:s0', it +should be changed to '/var/log/qemu-ga/qga-fsfreeze-hook.log'. And +it's worth to mention that this is RHEL-only change for matching +existing SELinux boolean and policy. + +Signed-off-by: Dehan Meng +--- + scripts/qemu-guest-agent/fsfreeze-hook | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/scripts/qemu-guest-agent/fsfreeze-hook b/scripts/qemu-guest-agent/fsfreeze-hook +index e9b84ec028..70536ba3e3 100755 +--- a/scripts/qemu-guest-agent/fsfreeze-hook ++++ b/scripts/qemu-guest-agent/fsfreeze-hook +@@ -7,7 +7,7 @@ + # "freeze" argument before the filesystem is frozen. And for fsfreeze-thaw + # request, it is issued with "thaw" argument after filesystem is thawed. + +-LOGFILE=/var/log/qga-fsfreeze-hook.log ++LOGFILE=/var/log/qemu-ga/qga-fsfreeze-hook.log + FSFREEZE_D=$(dirname -- "$(realpath $0)")/fsfreeze-hook.d + + # Check whether file $1 is a backup or rpm-generated file and should be ignored +-- +2.39.3 + diff --git a/kvm-remove-stale-compat-definitions.patch b/kvm-remove-stale-compat-definitions.patch new file mode 100644 index 0000000..cc1180f --- /dev/null +++ b/kvm-remove-stale-compat-definitions.patch @@ -0,0 +1,425 @@ +From 3cb4688b0b353296724b75772725e80fe2486958 Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Fri, 19 Apr 2024 17:20:49 +0200 +Subject: [PATCH 7/9] remove stale compat definitions + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [7/7] b8dd0980c40974787ed80ccd216c299f0a1aefb7 (seott1/cos-qemu-kvm) + +Get rid of unused [pc|hw_compat]_rhel_[7|8]* definitions. + +Signed-off-by: Sebastian Ott +--- + hw/core/machine.c | 196 ------------------------------------------- + hw/i386/pc.c | 115 ------------------------- + include/hw/boards.h | 24 ------ + include/hw/i386/pc.h | 21 ----- + 4 files changed, 356 deletions(-) + +diff --git a/hw/core/machine.c b/hw/core/machine.c +index 9cf8242b32..d95f246f66 100644 +--- a/hw/core/machine.c ++++ b/hw/core/machine.c +@@ -407,202 +407,6 @@ GlobalProperty hw_compat_rhel_9_0[] = { + }; + const size_t hw_compat_rhel_9_0_len = G_N_ELEMENTS(hw_compat_rhel_9_0); + +-GlobalProperty hw_compat_rhel_8_6[] = { +- /* hw_compat_rhel_8_6 bz 2065589 */ +- /* +- * vhost-vsock device in RHEL 8 kernels doesn't support seqpacket, so +- * we need do disable it downstream on the latest hw_compat_rhel_8. +- */ +- { "vhost-vsock-device", "seqpacket", "off" }, +-}; +-const size_t hw_compat_rhel_8_6_len = G_N_ELEMENTS(hw_compat_rhel_8_6); +- +-/* +- * Mostly the same as hw_compat_6_0 and hw_compat_6_1 +- */ +-GlobalProperty hw_compat_rhel_8_5[] = { +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "gpex-pcihost", "allow-unmapped-accesses", "false" }, +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "i8042", "extended-state", "false"}, +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "nvme-ns", "eui64-default", "off"}, +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "e1000", "init-vet", "off" }, +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "e1000e", "init-vet", "off" }, +- /* hw_compat_rhel_8_5 from hw_compat_6_0 */ +- { "vhost-vsock-device", "seqpacket", "off" }, +- /* hw_compat_rhel_8_5 from hw_compat_6_1 */ +- { "vhost-user-vsock-device", "seqpacket", "off" }, +- /* hw_compat_rhel_8_5 from hw_compat_6_1 */ +- { "nvme-ns", "shared", "off" }, +-}; +-const size_t hw_compat_rhel_8_5_len = G_N_ELEMENTS(hw_compat_rhel_8_5); +- +-/* +- * Mostly the same as hw_compat_5_2 +- */ +-GlobalProperty hw_compat_rhel_8_4[] = { +- /* hw_compat_rhel_8_4 from hw_compat_5_2 */ +- { "ICH9-LPC", "smm-compat", "on"}, +- /* hw_compat_rhel_8_4 from hw_compat_5_2 */ +- { "PIIX4_PM", "smm-compat", "on"}, +- /* hw_compat_rhel_8_4 from hw_compat_5_2 */ +- { "virtio-blk-device", "report-discard-granularity", "off" }, +- /* hw_compat_rhel_8_4 from hw_compat_5_2 */ +- /* +- * Upstream incorrectly had "virtio-net-pci" instead of "virtio-net-pci-base", +- * (https://bugzilla.redhat.com/show_bug.cgi?id=1999141) +- */ +- { "virtio-net-pci-base", "vectors", "3"}, +-}; +-const size_t hw_compat_rhel_8_4_len = G_N_ELEMENTS(hw_compat_rhel_8_4); +- +-/* +- * Mostly the same as hw_compat_5_1 +- */ +-GlobalProperty hw_compat_rhel_8_3[] = { +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "vhost-scsi", "num_queues", "1"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "vhost-user-blk", "num-queues", "1"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "vhost-user-scsi", "num_queues", "1"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "virtio-blk-device", "num-queues", "1"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "virtio-scsi-device", "num_queues", "1"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "nvme", "use-intel-id", "on"}, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "pvpanic", "events", "1"}, /* PVPANIC_PANICKED */ +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "pl011", "migrate-clk", "off" }, +- /* hw_compat_rhel_8_3 bz 1912846 */ +- { "pci-xhci", "x-rh-late-msi-cap", "off" }, +- /* hw_compat_rhel_8_3 from hw_compat_5_1 */ +- { "virtio-pci", "x-ats-page-aligned", "off"}, +-}; +-const size_t hw_compat_rhel_8_3_len = G_N_ELEMENTS(hw_compat_rhel_8_3); +- +-/* +- * The same as hw_compat_4_2 + hw_compat_5_0 +- */ +-GlobalProperty hw_compat_rhel_8_2[] = { +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-blk-device", "queue-size", "128"}, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-scsi-device", "virtqueue_size", "128"}, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-blk-device", "x-enable-wce-if-config-wce", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-blk-device", "seg-max-adjust", "off"}, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-scsi-device", "seg_max_adjust", "off"}, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "vhost-blk-device", "seg_max_adjust", "off"}, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "usb-host", "suppress-remote-wake", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "usb-redir", "suppress-remote-wake", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "qxl", "revision", "4" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "qxl-vga", "revision", "4" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "fw_cfg", "acpi-mr-restore", "false" }, +- /* hw_compat_rhel_8_2 from hw_compat_4_2 */ +- { "virtio-device", "use-disabled-flag", "false" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "pci-host-bridge", "x-config-reg-migration-enabled", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "virtio-balloon-device", "page-poison", "false" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "vmport", "x-read-set-eax", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "vmport", "x-signal-unsupported-cmd", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "vmport", "x-report-vmx-type", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "vmport", "x-cmds-v2", "off" }, +- /* hw_compat_rhel_8_2 from hw_compat_5_0 */ +- { "virtio-device", "x-disable-legacy-check", "true" }, +-}; +-const size_t hw_compat_rhel_8_2_len = G_N_ELEMENTS(hw_compat_rhel_8_2); +- +-/* +- * The same as hw_compat_4_1 +- */ +-GlobalProperty hw_compat_rhel_8_1[] = { +- /* hw_compat_rhel_8_1 from hw_compat_4_1 */ +- { "virtio-pci", "x-pcie-flr-init", "off" }, +-}; +-const size_t hw_compat_rhel_8_1_len = G_N_ELEMENTS(hw_compat_rhel_8_1); +- +-/* The same as hw_compat_3_1 +- * format of array has been changed by: +- * 6c36bddf5340 ("machine: Use shorter format for GlobalProperty arrays") +- */ +-GlobalProperty hw_compat_rhel_8_0[] = { +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "pcie-root-port", "x-speed", "2_5" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "pcie-root-port", "x-width", "1" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "memory-backend-file", "x-use-canonical-path-for-ramblock-id", "true" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "memory-backend-memfd", "x-use-canonical-path-for-ramblock-id", "true" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "tpm-crb", "ppi", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "tpm-tis", "ppi", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "usb-kbd", "serial", "42" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "usb-mouse", "serial", "42" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "usb-tablet", "serial", "42" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "virtio-blk-device", "discard", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 */ +- { "virtio-blk-device", "write-zeroes", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "VGA", "edid", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "secondary-vga", "edid", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "bochs-display", "edid", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "virtio-vga", "edid", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "virtio-gpu-device", "edid", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_4_0 */ +- { "virtio-device", "use-started", "false" }, +- /* hw_compat_rhel_8_0 from hw_compat_3_1 - that was added in 4.1 */ +- { "pcie-root-port-base", "disable-acs", "true" }, +-}; +-const size_t hw_compat_rhel_8_0_len = G_N_ELEMENTS(hw_compat_rhel_8_0); +- +-/* The same as hw_compat_3_0 + hw_compat_2_12 +- * except that +- * there's nothing in 3_0 +- * migration.decompress-error-check=off was in 7.5 from bz 1584139 +- */ +-GlobalProperty hw_compat_rhel_7_6[] = { +- /* hw_compat_rhel_7_6 from hw_compat_2_12 */ +- { "hda-audio", "use-timer", "false" }, +- /* hw_compat_rhel_7_6 from hw_compat_2_12 */ +- { "cirrus-vga", "global-vmstate", "true" }, +- /* hw_compat_rhel_7_6 from hw_compat_2_12 */ +- { "VGA", "global-vmstate", "true" }, +- /* hw_compat_rhel_7_6 from hw_compat_2_12 */ +- { "vmware-svga", "global-vmstate", "true" }, +- /* hw_compat_rhel_7_6 from hw_compat_2_12 */ +- { "qxl-vga", "global-vmstate", "true" }, +-}; +-const size_t hw_compat_rhel_7_6_len = G_N_ELEMENTS(hw_compat_rhel_7_6); +- + MachineState *current_machine; + + static char *machine_get_kernel(Object *obj, Error **errp) +diff --git a/hw/i386/pc.c b/hw/i386/pc.c +index a49d346d2e..7af762065f 100644 +--- a/hw/i386/pc.c ++++ b/hw/i386/pc.c +@@ -316,121 +316,6 @@ GlobalProperty pc_rhel_9_0_compat[] = { + }; + const size_t pc_rhel_9_0_compat_len = G_N_ELEMENTS(pc_rhel_9_0_compat); + +-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); +- +-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); +- +-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); +- +-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); +- +-/* 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); +- +-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); +- +-/* 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[] = { +- /* pc_rhel_7_6_compat from pc_compat_3_0 */ +- { TYPE_X86_CPU, "x-hv-synic-kvm-only", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_3_0 */ +- { "Skylake-Server" "-" TYPE_X86_CPU, "pku", "off" }, +- /* pc_rhel_7_6_compat from pc_compat_3_0 */ +- { "Skylake-Server-IBRS" "-" TYPE_X86_CPU, "pku", "off" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { TYPE_X86_CPU, "x-migrate-smi-count", "off" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Skylake-Client" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Skylake-Client-IBRS" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Skylake-Server" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Skylake-Server-IBRS" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Cascadelake-Server" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Icelake-Client" "-" TYPE_X86_CPU, "mpx", "on" }, +- /* pc_rhel_7_6_compat from pc_compat_2_11 */ +- { "Icelake-Server" "-" TYPE_X86_CPU, "mpx", "on" }, +-}; +-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. +- */ +- + GSIState *pc_gsi_create(qemu_irq **irqs, bool pci_enabled) + { + GSIState *s; +diff --git a/include/hw/boards.h b/include/hw/boards.h +index 6d98aaf4c7..ac917b87fb 100644 +--- a/include/hw/boards.h ++++ b/include/hw/boards.h +@@ -823,29 +823,5 @@ extern const size_t hw_compat_rhel_9_1_len; + extern GlobalProperty hw_compat_rhel_9_0[]; + extern const size_t hw_compat_rhel_9_0_len; + +-extern GlobalProperty hw_compat_rhel_8_6[]; +-extern const size_t hw_compat_rhel_8_6_len; +- +-extern GlobalProperty hw_compat_rhel_8_5[]; +-extern const size_t hw_compat_rhel_8_5_len; +- +-extern GlobalProperty hw_compat_rhel_8_4[]; +-extern const size_t hw_compat_rhel_8_4_len; +- +-extern GlobalProperty hw_compat_rhel_8_3[]; +-extern const size_t hw_compat_rhel_8_3_len; +- +-extern GlobalProperty hw_compat_rhel_8_2[]; +-extern const size_t hw_compat_rhel_8_2_len; +- +-extern GlobalProperty hw_compat_rhel_8_1[]; +-extern const size_t hw_compat_rhel_8_1_len; +- +-extern GlobalProperty hw_compat_rhel_8_0[]; +-extern const size_t hw_compat_rhel_8_0_len; +- +-extern GlobalProperty hw_compat_rhel_7_6[]; +-extern const size_t hw_compat_rhel_7_6_len; +- + extern const char *rhel_old_machine_deprecation; + #endif +diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h +index 8e9597f40f..61609027d0 100644 +--- a/include/hw/i386/pc.h ++++ b/include/hw/i386/pc.h +@@ -314,27 +314,6 @@ extern const size_t pc_rhel_9_2_compat_len; + extern GlobalProperty pc_rhel_9_0_compat[]; + extern const size_t pc_rhel_9_0_compat_len; + +-extern GlobalProperty pc_rhel_8_5_compat[]; +-extern const size_t pc_rhel_8_5_compat_len; +- +-extern GlobalProperty pc_rhel_8_4_compat[]; +-extern const size_t pc_rhel_8_4_compat_len; +- +-extern GlobalProperty pc_rhel_8_3_compat[]; +-extern const size_t pc_rhel_8_3_compat_len; +- +-extern GlobalProperty pc_rhel_8_2_compat[]; +-extern const size_t pc_rhel_8_2_compat_len; +- +-extern GlobalProperty pc_rhel_8_1_compat[]; +-extern const size_t pc_rhel_8_1_compat_len; +- +-extern GlobalProperty pc_rhel_8_0_compat[]; +-extern const size_t pc_rhel_8_0_compat_len; +- +-extern GlobalProperty pc_rhel_7_6_compat[]; +-extern const size_t pc_rhel_7_6_compat_len; +- + #define DEFINE_PC_MACHINE(suffix, namestr, initfn, optsfn) \ + static void pc_machine_##suffix##_class_init(ObjectClass *oc, void *data) \ + { \ +-- +2.39.3 + diff --git a/kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch b/kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch new file mode 100644 index 0000000..55f3618 --- /dev/null +++ b/kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch @@ -0,0 +1,50 @@ +From a498476ecdb2b81b7feae6bf496f0b8caa68d2e7 Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Thu, 5 Sep 2024 13:58:44 +0200 +Subject: [PATCH 1/9] x86: create new pc-q35 machine type for rhel 9.6 + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [1/7] 3c735a074e629eee589d5acf8fdace6517c57c54 (seott1/cos-qemu-kvm) + +Signed-off-by: Sebastian Ott +--- + hw/i386/pc_q35.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index a05df61cfc..6ee032e91e 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -672,11 +672,23 @@ DEFINE_Q35_MACHINE(2, 4); + + /* Red Hat Enterprise Linux machine types */ + +-static void pc_q35_rhel_machine_9_4_0_options(MachineClass *m) ++static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m) + { + PCMachineClass *pcmc = PC_MACHINE_CLASS(m); + pc_q35_machine_options(m); ++ m->desc = "RHEL-9.6.0 PC (Q35 + ICH9, 2009)"; ++ pcmc->smbios_stream_product = "RHEL"; ++ pcmc->smbios_stream_version = "9.6.0"; ++} ++ ++DEFINE_Q35_MACHINE_BUGFIX(9, 6, 0); ++ ++static void pc_q35_rhel_machine_9_4_0_options(MachineClass *m) ++{ ++ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ pc_q35_rhel_machine_9_6_0_options(m); + m->desc = "RHEL-9.4.0 PC (Q35 + ICH9, 2009)"; ++ m->alias = NULL; + pcmc->smbios_stream_product = "RHEL"; + pcmc->smbios_stream_version = "9.4.0"; + +-- +2.39.3 + diff --git a/kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch b/kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch new file mode 100644 index 0000000..41f065d --- /dev/null +++ b/kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch @@ -0,0 +1,79 @@ +From e31809f655d2298a4e21e317c8c6cb453a63939b Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Tue, 28 May 2024 14:04:07 +0200 +Subject: [PATCH 3/9] x86: create pc-i440fx machine type for rhel10 + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [3/7] e5aab53bc07dac21097497ce0d9798c6414dce57 (seott1/cos-qemu-kvm) + +Create a new machine type pc-i440fx-rhel10.0.0, +set it as default and alias to pc. + +Signed-off-by: Sebastian Ott +--- + hw/i386/pc_piix.c | 37 +++++++++++++++++++++++++++++++++++-- + 1 file changed, 35 insertions(+), 2 deletions(-) + +diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c +index 447f98b438..663f67aa3a 100644 +--- a/hw/i386/pc_piix.c ++++ b/hw/i386/pc_piix.c +@@ -830,6 +830,41 @@ DEFINE_PC_MACHINE(xenfv, "xenfv-3.1", pc_xen_hvm_init, + + /* Red Hat Enterprise Linux machine types */ + ++static void pc_machine_rhel10_options(MachineClass *m) ++{ ++ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ ObjectClass *oc = OBJECT_CLASS(m); ++ pcmc->default_south_bridge = TYPE_PIIX3_DEVICE; ++ pcmc->pci_root_uid = 0; ++ pcmc->default_cpu_version = 1; ++ ++ m->family = "pc_piix_Y"; ++ m->default_machine_opts = "firmware=bios-256k.bin"; ++ m->default_display = "std"; ++ m->default_nic = "e1000"; ++ m->no_parallel = 1; ++ m->no_floppy = 1; ++ machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_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"); ++} ++ ++static void pc_i440fx_rhel_machine_10_0_0_options(MachineClass *m) ++{ ++ pc_machine_rhel10_options(m); ++ ++ m->desc = "RHEL 10.0.0 PC (i440FX + PIIX, 1996)"; ++ m->deprecation_reason = rhel_old_machine_deprecation; ++ m->alias = "pc"; ++ m->is_default = 1; ++} ++DEFINE_I440FX_MACHINE(10, 0, 0); ++ + /* Options for the latest rhel7 machine type */ + static void pc_machine_rhel7_options(MachineClass *m) + { +@@ -844,8 +879,6 @@ static void pc_machine_rhel7_options(MachineClass *m) + m->auto_enable_numa_with_memdev = false; + machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); + compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); +- m->alias = "pc"; +- m->is_default = 1; + m->smp_props.prefer_sockets = true; + } + +-- +2.39.3 + diff --git a/kvm-x86-create-pc-q35-machine-type-for-rhel10.patch b/kvm-x86-create-pc-q35-machine-type-for-rhel10.patch new file mode 100644 index 0000000..47a7be3 --- /dev/null +++ b/kvm-x86-create-pc-q35-machine-type-for-rhel10.patch @@ -0,0 +1,59 @@ +From 16bd67e1b3706f2e20bda52a5f8ad42742a51f55 Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Thu, 22 Aug 2024 17:21:52 +0200 +Subject: [PATCH 4/9] x86: create pc-q35 machine type for rhel10 + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [4/7] 86639ee63c884fb97e1f6bc7e24b2773ac2b4a7a (seott1/cos-qemu-kvm) + +Create a new machine type pc-q35-rhel10.0.0 with alias q35. + +Signed-off-by: Sebastian Ott +--- + hw/i386/pc_q35.c | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index 6ee032e91e..4ad4ad79a4 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -672,11 +672,22 @@ DEFINE_Q35_MACHINE(2, 4); + + /* Red Hat Enterprise Linux machine types */ + +-static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m) ++static void pc_q35_rhel_machine_10_0_0_options(MachineClass *m) + { + PCMachineClass *pcmc = PC_MACHINE_CLASS(m); + pc_q35_machine_options(m); ++ m->desc = "RHEL-10.0.0 PC (Q35 + ICH9, 2009)"; ++ pcmc->smbios_stream_product = "RHEL"; ++ pcmc->smbios_stream_version = "10.0.0"; ++} ++DEFINE_Q35_MACHINE_BUGFIX(10, 0, 0); ++ ++static void pc_q35_rhel_machine_9_6_0_options(MachineClass *m) ++{ ++ PCMachineClass *pcmc = PC_MACHINE_CLASS(m); ++ pc_q35_rhel_machine_10_0_0_options(m); + m->desc = "RHEL-9.6.0 PC (Q35 + ICH9, 2009)"; ++ m->alias = NULL; + pcmc->smbios_stream_product = "RHEL"; + pcmc->smbios_stream_version = "9.6.0"; + } +@@ -688,7 +699,6 @@ static void pc_q35_rhel_machine_9_4_0_options(MachineClass *m) + PCMachineClass *pcmc = PC_MACHINE_CLASS(m); + pc_q35_rhel_machine_9_6_0_options(m); + m->desc = "RHEL-9.4.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; + pcmc->smbios_stream_product = "RHEL"; + pcmc->smbios_stream_version = "9.4.0"; + +-- +2.39.3 + diff --git a/kvm-x86-remove-deprecated-rhel-machine-types.patch b/kvm-x86-remove-deprecated-rhel-machine-types.patch new file mode 100644 index 0000000..98acd71 --- /dev/null +++ b/kvm-x86-remove-deprecated-rhel-machine-types.patch @@ -0,0 +1,274 @@ +From e0fdae22db8d3a333d5c01e64d0c063b3d47c553 Mon Sep 17 00:00:00 2001 +From: Sebastian Ott +Date: Thu, 22 Aug 2024 16:30:08 +0200 +Subject: [PATCH 6/9] x86: remove deprecated rhel machine types + +RH-Author: Sebastian Ott +RH-MergeRequest: 270: RHEL10 machine types +RH-Jira: RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141 RHEL-52318 RHEL-52320 +RH-Acked-by: Thomas Huth +RH-Acked-by: Cornelia Huck +RH-Acked-by: Eric Auger +RH-Commit: [6/7] 928c59980a5c5f613e90e4ccfcfcfc08488da519 (seott1/cos-qemu-kvm) + +Remove the following deprecated x86 rhel specific machine types: + +pc RHEL 7.6.0 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-rhel7.6.0) +pc-i440fx-rhel7.6.0 RHEL 7.6.0 PC (i440FX + PIIX, 1996) (default) (deprecated) +pc-q35-rhel8.6.0 RHEL-8.6.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.5.0 RHEL-8.5.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.4.0 RHEL-8.4.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.3.0 RHEL-8.3.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.2.0 RHEL-8.2.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.1.0 RHEL-8.1.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel8.0.0 RHEL-8.0.0 PC (Q35 + ICH9, 2009) (deprecated) +pc-q35-rhel7.6.0 RHEL-7.6.0 PC (Q35 + ICH9, 2009) (deprecated) + +Signed-off-by: Sebastian Ott +--- + hw/i386/pc_piix.c | 95 ---------------------------------- + hw/i386/pc_q35.c | 128 ---------------------------------------------- + 2 files changed, 223 deletions(-) + +diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c +index 663f67aa3a..96f5997051 100644 +--- a/hw/i386/pc_piix.c ++++ b/hw/i386/pc_piix.c +@@ -864,98 +864,3 @@ static void pc_i440fx_rhel_machine_10_0_0_options(MachineClass *m) + m->is_default = 1; + } + DEFINE_I440FX_MACHINE(10, 0, 0); +- +-/* 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"; +- m->default_machine_opts = "firmware=bios-256k.bin,hpet=off"; +- pcmc->pci_root_uid = 0; +- m->default_nic = "e1000"; +- m->default_display = "std"; +- m->no_parallel = 1; +- m->numa_mem_supported = true; +- m->auto_enable_numa_with_memdev = false; +- machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); +- compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); +- m->smp_props.prefer_sockets = true; +-} +- +-static void pc_i440fx_rhel_machine_7_6_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- ObjectClass *oc = OBJECT_CLASS(m); +- pc_machine_rhel7_options(m); +- m->desc = "RHEL 7.6.0 PC (i440FX + PIIX, 1996)"; +- m->async_pf_vmexit_disable = true; +- m->smbus_no_migration_support = true; +- +- pcmc->pvh_enabled = false; +- pcmc->default_cpu_version = CPU_VERSION_LEGACY; +- pcmc->kvmclock_create_always = false; +- /* From pc_i440fx_5_1_machine_options() */ +- pcmc->pci_root_uid = 1; +- /* From pc_i440fx_7_0_machine_options() */ +- pcmc->enforce_amd_1tb_hole = false; +- /* From pc_i440fx_8_0_machine_options() */ +- pcmc->default_smbios_ep_type = SMBIOS_ENTRY_POINT_TYPE_32; +- /* From pc_i440fx_8_1_machine_options() */ +- pcmc->broken_32bit_mem_addr_check = true; +- /* 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"); +- +- compat_props_add(m->compat_props, hw_compat_rhel_10_0, +- hw_compat_rhel_10_0_len); +- compat_props_add(m->compat_props, hw_compat_rhel_9_5, +- hw_compat_rhel_9_5_len); +- 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); +- 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); +- compat_props_add(m->compat_props, hw_compat_rhel_9_1, +- hw_compat_rhel_9_1_len); +- 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); +- 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); +- compat_props_add(m->compat_props, hw_compat_rhel_8_4, +- hw_compat_rhel_8_4_len); +- compat_props_add(m->compat_props, pc_rhel_8_4_compat, +- pc_rhel_8_4_compat_len); +- 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); +- 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); +- 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); +- 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); +- 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); +-} +- +-DEFINE_I440FX_MACHINE(7, 6, 0); +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index 4ad4ad79a4..37f54062c8 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -760,131 +760,3 @@ static void pc_q35_rhel_machine_9_0_0_options(MachineClass *m) + } + + DEFINE_Q35_MACHINE_BUGFIX(9, 0, 0); +- +-static void pc_q35_rhel_machine_8_6_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_9_0_0_options(m); +- 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); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 6, 0); +- +-static void pc_q35_rhel_machine_8_5_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_6_0_options(m); +- m->desc = "RHEL-8.5.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; +- pcmc->smbios_stream_product = "RHEL-AV"; +- pcmc->smbios_stream_version = "8.5.0"; +- 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; +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 5, 0); +- +-static void pc_q35_rhel_machine_8_4_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_5_0_options(m); +- m->desc = "RHEL-8.4.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; +- 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); +- compat_props_add(m->compat_props, pc_rhel_8_4_compat, +- pc_rhel_8_4_compat_len); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 4, 0); +- +-static void pc_q35_rhel_machine_8_3_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_4_0_options(m); +- m->desc = "RHEL-8.3.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; +- pcmc->smbios_stream_product = "RHEL-AV"; +- pcmc->smbios_stream_version = "8.3.0"; +- 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; +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 3, 0); +- +-static void pc_q35_rhel_machine_8_2_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_3_0_options(m); +- m->desc = "RHEL-8.2.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; +- m->numa_mem_supported = true; +- m->auto_enable_numa_with_memdev = false; +- pcmc->smbios_stream_product = "RHEL-AV"; +- pcmc->smbios_stream_version = "8.2.0"; +- 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); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 2, 0); +- +-static void pc_q35_rhel_machine_8_1_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_2_0_options(m); +- m->desc = "RHEL-8.1.0 PC (Q35 + ICH9, 2009)"; +- m->alias = NULL; +- pcmc->smbios_stream_product = NULL; +- pcmc->smbios_stream_version = NULL; +- 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); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 1, 0); +- +-static void pc_q35_rhel_machine_8_0_0_options(MachineClass *m) +-{ +- PCMachineClass *pcmc = PC_MACHINE_CLASS(m); +- pc_q35_rhel_machine_8_1_0_options(m); +- m->desc = "RHEL-8.0.0 PC (Q35 + ICH9, 2009)"; +- 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); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(8, 0, 0); +- +-static void pc_q35_rhel_machine_7_6_0_options(MachineClass *m) +-{ +- pc_q35_rhel_machine_8_0_0_options(m); +- m->alias = NULL; +- m->desc = "RHEL-7.6.0 PC (Q35 + ICH9, 2009)"; +- 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); +-} +- +-DEFINE_Q35_MACHINE_BUGFIX(7, 6, 0); +- +-- +2.39.3 + diff --git a/qemu-kvm.spec b/qemu-kvm.spec index e326694..aa38ee7 100644 --- a/qemu-kvm.spec +++ b/qemu-kvm.spec @@ -143,7 +143,7 @@ Obsoletes: %{name}-block-ssh <= %{epoch}:%{version} \ Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm Version: 9.1.0 -Release: 1%{?rcrel}%{?dist}%{?cc_suffix} +Release: 2%{?rcrel}%{?dist}%{?cc_suffix} # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped # Epoch 15 used for RHEL 8 # Epoch 17 used for RHEL 9 (due to release versioning offset in RHEL 8.5) @@ -189,6 +189,52 @@ Patch0022: 0022-redhat-Add-QEMU-9.1-compat-handling-to-the-s390x-mac.patch Patch0023: 0023-redhat-Add-rhel9.6.0-and-rhel10.0.0-machine-types.patch Patch0024: 0024-x86-ensure-compatibility-of-pc-q35-rhel9.patch Patch0025: 0025-arm-ensure-compatibility-of-virt-rhel9.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch26: kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch27: kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch28: kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch29: kvm-x86-create-pc-q35-machine-type-for-rhel10.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch30: kvm-arm-create-virt-machine-type-for-rhel10.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch31: kvm-x86-remove-deprecated-rhel-machine-types.patch +# For RHEL-29002 - Remove the existing deprecated machine types in RHEL-10 +# For RHEL-29003 - Deprecate RHEL-9 machine types in RHEL-10 +# For RHEL-35587 - Create a pc-i440fx-rhel10.0 machine type +# For RHEL-38411 - [Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10 +# For RHEL-45141 - Introduce virt-rhel10.0 arm-virt machine type [aarch64] +Patch32: kvm-remove-stale-compat-definitions.patch +# For RHEL-38374 - aarch64 SMBIOS 'Manufacturer' and 'Product Name' differ from x86 ones [rhel-10] +Patch33: kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch +# For RHEL-57028 - fsfreeze hooks break on the systems first restorecon [rhel-10] +Patch34: kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch %if %{have_clang} BuildRequires: clang @@ -1256,6 +1302,31 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \ %endif %changelog +* Mon Sep 30 2024 Miroslav Rezanina - 9.1.0-2 +- kvm-x86-create-new-pc-q35-machine-type-for-rhel-9.6.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-arm-create-new-virt-machine-type-for-rhel-9.6.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-x86-create-pc-i440fx-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-x86-create-pc-q35-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-arm-create-virt-machine-type-for-rhel10.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-x86-remove-deprecated-rhel-machine-types.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-remove-stale-compat-definitions.patch [RHEL-29002 RHEL-29003 RHEL-35587 RHEL-38411 RHEL-45141] +- kvm-RH-Author-Shaoqin-Huang-shahuang-redhat.com.patch [RHEL-38374] +- kvm-qemu-guest-agent-Update-the-logfile-path-of-qga-fsfr.patch [RHEL-57028] +- Resolves: RHEL-29002 + (Remove the existing deprecated machine types in RHEL-10) +- Resolves: RHEL-29003 + (Deprecate RHEL-9 machine types in RHEL-10) +- Resolves: RHEL-35587 + (Create a pc-i440fx-rhel10.0 machine type) +- Resolves: RHEL-38411 + ([Fujitsu 10.0 FEAT]: qemu-kvm: Continue to support i440fx for RHEL10) +- Resolves: RHEL-45141 + (Introduce virt-rhel10.0 arm-virt machine type [aarch64]) +- Resolves: RHEL-38374 + (aarch64 SMBIOS 'Manufacturer' and 'Product Name' differ from x86 ones [rhel-10]) +- Resolves: RHEL-57028 + (fsfreeze hooks break on the systems first restorecon [rhel-10]) + * Tue Sep 10 2024 Miroslav Rezanina - 9.1.0-1 - Rebase to QEMU 9.1.0 [RHEL-41246] - Resolves: RHEL-41246