diff --git a/kvm-config-enable-VFIO_CCW.patch b/kvm-config-enable-VFIO_CCW.patch new file mode 100644 index 0000000..50f6fc2 --- /dev/null +++ b/kvm-config-enable-VFIO_CCW.patch @@ -0,0 +1,42 @@ +From f6e6416e8267d302ba5ec40c2a26bc25cc0d1d55 Mon Sep 17 00:00:00 2001 +From: Cornelia Huck +Date: Fri, 29 Jan 2021 14:40:05 -0500 +Subject: [PATCH 5/5] config: enable VFIO_CCW + +RH-Author: Cornelia Huck +Message-id: <20210129144005.698097-1-cohuck@redhat.com> +Patchwork-id: 100941 +O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH] config: enable VFIO_CCW +Bugzilla: 1922170 +RH-Acked-by: Alex Williamson +RH-Acked-by: David Hildenbrand +RH-Acked-by: Thomas Huth + +BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1922170 +BRANCH: rhel-av-8.4.0 +UPSTREAM: n/a +BREW: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34609010 + +Enable vfio-ccw in RHEL AV builds. + +Signed-off-by: Cornelia Huck +Signed-off-by: Eduardo Lima (Etrunko) +--- + default-configs/devices/s390x-rh-devices.mak | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/default-configs/devices/s390x-rh-devices.mak b/default-configs/devices/s390x-rh-devices.mak +index c3c73fe752..08a15f3e01 100644 +--- a/default-configs/devices/s390x-rh-devices.mak ++++ b/default-configs/devices/s390x-rh-devices.mak +@@ -9,6 +9,7 @@ CONFIG_SCSI=y + CONFIG_TERMINAL3270=y + CONFIG_VFIO=y + CONFIG_VFIO_AP=y ++CONFIG_VFIO_CCW=y + CONFIG_VFIO_PCI=y + CONFIG_VHOST_USER=y + CONFIG_VIRTIO_CCW=y +-- +2.18.4 + diff --git a/kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch b/kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch new file mode 100644 index 0000000..ac1341e --- /dev/null +++ b/kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch @@ -0,0 +1,45 @@ +From 8fa6654712c7cba73fd1c8d93b094d90c1757000 Mon Sep 17 00:00:00 2001 +From: Eduardo Habkost +Date: Tue, 26 Jan 2021 23:46:44 -0500 +Subject: [PATCH 4/5] q35: Increase max_cpus to 710 on pc-q35-rhel8* machine + types + +RH-Author: Eduardo Habkost +Message-id: <20210126234644.3091529-1-ehabkost@redhat.com> +Patchwork-id: 100791 +O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH] q35: Increase max_cpus to 710 on pc-q35-rhel8* machine types +Bugzilla: 1904268 +RH-Acked-by: Daniel P. Berrange +RH-Acked-by: Thomas Huth +RH-Acked-by: Paolo Bonzini + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1904268 +Upstream: not applicable +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34536802 + +The original goal was to support 1024 VCPUs, but 710 VCPUs is the +maximum number we can reach before hitting SMBIOS table size +limits. + +Signed-off-by: Eduardo Habkost +Signed-off-by: Eduardo Lima (Etrunko) +--- + hw/i386/pc_q35.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c +index 5acb47afcf..72854192a9 100644 +--- a/hw/i386/pc_q35.c ++++ b/hw/i386/pc_q35.c +@@ -589,7 +589,7 @@ static void pc_q35_machine_rhel_options(MachineClass *m) + machine_class_allow_dynamic_sysbus_dev(m, TYPE_INTEL_IOMMU_DEVICE); + machine_class_allow_dynamic_sysbus_dev(m, TYPE_RAMFB_DEVICE); + m->alias = "q35"; +- m->max_cpus = 512; ++ m->max_cpus = 710; + compat_props_add(m->compat_props, pc_rhel_compat, pc_rhel_compat_len); + } + +-- +2.18.4 + diff --git a/kvm-spapr-Allow-memory-unplug-to-always-succeed.patch b/kvm-spapr-Allow-memory-unplug-to-always-succeed.patch new file mode 100644 index 0000000..f7a6b9a --- /dev/null +++ b/kvm-spapr-Allow-memory-unplug-to-always-succeed.patch @@ -0,0 +1,100 @@ +From 1365bf10ad49fd7c0a3b4e2eabeaacd1abf60d18 Mon Sep 17 00:00:00 2001 +From: Greg Kurz +Date: Tue, 19 Jan 2021 15:20:43 -0500 +Subject: [PATCH 1/5] spapr: Allow memory unplug to always succeed + +RH-Author: Greg Kurz +Message-id: <20210119152044.1019191-2-gkurz@redhat.com> +Patchwork-id: 100690 +O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH 1/2] spapr: Allow memory unplug to always succeed +Bugzilla: 1914069 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Laurent Vivier +RH-Acked-by: David Gibson + +From: Greg Kurz + +It is currently impossible to hot-unplug a memory device between +machine reset and CAS. + +(qemu) device_del dimm1 +Error: Memory hot unplug not supported for this guest + +This limitation was introduced in order to provide an explicit +error path for older guests that didn't support hot-plug event +sources (and thus memory hot-unplug). + +The linux kernel has been supporting these since 4.11. All recent +enough guests are thus capable of handling the removal of a memory +device at all time, including during early boot. + +Lift the limitation for the latest machine type. This means that +trying to unplug memory from a guest that doesn't support it will +likely just do nothing and the memory will only get removed at +next reboot. Such older guests can still get the existing behavior +by using an older machine type. + +Signed-off-by: Greg Kurz +Message-Id: <160794035064.23292.17560963281911312439.stgit@bahia.lan> +Signed-off-by: David Gibson +(cherry picked from commit 1e8b5b1aa16b7d73ba8ba52c95d0b52329d5c9d0) +Signed-off-by: Greg Kurz + +Conflicts: + hw/ppc/spapr.c + +Conflict because RHEL-AV doesn't have upstream 576a00bdeb5b ("hw: add +compat machines for 6.0"). Just ignore the change that sets +pre_6_0_memory_unplug for older machine types since the next patch +removes the flag. + +Signed-off-by: Eduardo Lima (Etrunko) +--- + hw/ppc/spapr.c | 3 ++- + hw/ppc/spapr_events.c | 3 ++- + include/hw/ppc/spapr.h | 1 + + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index 4f61b64a21..65a647134a 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -4064,7 +4064,8 @@ static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev, + SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); + + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { +- if (spapr_ovec_test(sms->ov5_cas, OV5_HP_EVT)) { ++ if (!smc->pre_6_0_memory_unplug || ++ spapr_ovec_test(sms->ov5_cas, OV5_HP_EVT)) { + spapr_memory_unplug_request(hotplug_dev, dev, errp); + } else { + /* NOTE: this means there is a window after guest reset, prior to +diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c +index 1add53547e..c30123177b 100644 +--- a/hw/ppc/spapr_events.c ++++ b/hw/ppc/spapr_events.c +@@ -659,7 +659,8 @@ static void spapr_hotplug_req_event(uint8_t hp_id, uint8_t hp_action, + /* we should not be using count_indexed value unless the guest + * supports dedicated hotplug event source + */ +- g_assert(spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT)); ++ g_assert(!SPAPR_MACHINE_GET_CLASS(spapr)->pre_6_0_memory_unplug || ++ spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT)); + hp->drc_id.count_indexed.count = + cpu_to_be32(drc_id->count_indexed.count); + hp->drc_id.count_indexed.index = +diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h +index 28bbf07f8f..4941fe9b4f 100644 +--- a/include/hw/ppc/spapr.h ++++ b/include/hw/ppc/spapr.h +@@ -142,6 +142,7 @@ struct SpaprMachineClass { + hwaddr rma_limit; /* clamp the RMA to this size */ + bool pre_5_1_assoc_refpoints; + bool pre_5_2_numa_associativity; ++ bool pre_6_0_memory_unplug; + + bool has_power9_support; + void (*phb_placement)(SpaprMachineState *spapr, uint32_t index, +-- +2.18.4 + diff --git a/kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch b/kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch new file mode 100644 index 0000000..94bad1d --- /dev/null +++ b/kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch @@ -0,0 +1,168 @@ +From cd719765bd751142c4040ee7daf615b859fb3e9d Mon Sep 17 00:00:00 2001 +From: Greg Kurz +Date: Tue, 19 Jan 2021 15:20:44 -0500 +Subject: [PATCH 2/5] spapr: Improve handling of memory unplug with old guests + +RH-Author: Greg Kurz +Message-id: <20210119152044.1019191-3-gkurz@redhat.com> +Patchwork-id: 100691 +O-Subject: [RHEL-AV-8.4.0 qemu-kvm PATCH 2/2] spapr: Improve handling of memory unplug with old guests +Bugzilla: 1914069 +RH-Acked-by: Miroslav Rezanina +RH-Acked-by: Laurent Vivier +RH-Acked-by: David Gibson + +From: Greg Kurz + +Since commit 1e8b5b1aa16b ("spapr: Allow memory unplug to always succeed") +trying to unplug memory from a guest that doesn't support it (eg. rhel6) +no longer generates an error like it used to. Instead, it leaves the +memory around : only a subsequent reboot or manual use of drmgr within +the guest can complete the hot-unplug sequence. A flag was added to +SpaprMachineClass so that this new behavior only applies to the default +machine type. + +We can do better. CAS processes all pending hot-unplug requests. This +means that we don't really care about what the guest supports if +the hot-unplug request happens before CAS. + +All guests that we care for, even old ones, set enough bits in OV5 +that lead to a non-empty bitmap in spapr->ov5_cas. Use that as a +heuristic to decide if CAS has already occured or not. + +Always accept unplug requests that happen before CAS since CAS will +process them. Restore the previous behavior of rejecting them after +CAS when we know that the guest doesn't support memory hot-unplug. + +This behavior is suitable for all machine types : this allows to +drop the pre_6_0_memory_unplug flag. + +Fixes: 1e8b5b1aa16b ("spapr: Allow memory unplug to always succeed") +Signed-off-by: Greg Kurz +Message-Id: <161012708715.801107.11418801796987916516.stgit@bahia.lan> +Reviewed-by: Daniel Henrique Barboza +Signed-off-by: David Gibson +(cherry picked from commit 73598c75df0585e039825e642adede21912dabc7) +Signed-off-by: Greg Kurz + +Conflicts: + hw/ppc/spapr.c + +Conflict around the removal of pre_6_0_memory_unplug, which was only +partially backported from upstream 1e8b5b1aa16b. + +Signed-off-by: Eduardo Lima (Etrunko) +--- + hw/ppc/spapr.c | 21 +++++++++++++-------- + hw/ppc/spapr_events.c | 3 +-- + hw/ppc/spapr_ovec.c | 7 +++++++ + include/hw/ppc/spapr.h | 2 +- + include/hw/ppc/spapr_ovec.h | 1 + + 5 files changed, 23 insertions(+), 11 deletions(-) + +diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c +index 65a647134a..a67df8cb26 100644 +--- a/hw/ppc/spapr.c ++++ b/hw/ppc/spapr.c +@@ -4056,6 +4056,18 @@ static void spapr_machine_device_unplug(HotplugHandler *hotplug_dev, + } + } + ++bool spapr_memory_hot_unplug_supported(SpaprMachineState *spapr) ++{ ++ return spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT) || ++ /* ++ * CAS will process all pending unplug requests. ++ * ++ * HACK: a guest could theoretically have cleared all bits in OV5, ++ * but none of the guests we care for do. ++ */ ++ spapr_ovec_empty(spapr->ov5_cas); ++} ++ + static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev, + DeviceState *dev, Error **errp) + { +@@ -4064,16 +4076,9 @@ static void spapr_machine_device_unplug_request(HotplugHandler *hotplug_dev, + SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc); + + if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { +- if (!smc->pre_6_0_memory_unplug || +- spapr_ovec_test(sms->ov5_cas, OV5_HP_EVT)) { ++ if (spapr_memory_hot_unplug_supported(sms)) { + spapr_memory_unplug_request(hotplug_dev, dev, errp); + } else { +- /* NOTE: this means there is a window after guest reset, prior to +- * CAS negotiation, where unplug requests will fail due to the +- * capability not being detected yet. This is a bit different than +- * the case with PCI unplug, where the events will be queued and +- * eventually handled by the guest after boot +- */ + error_setg(errp, "Memory hot unplug not supported for this guest"); + } + } else if (object_dynamic_cast(OBJECT(dev), TYPE_SPAPR_CPU_CORE)) { +diff --git a/hw/ppc/spapr_events.c b/hw/ppc/spapr_events.c +index c30123177b..80b918ff5f 100644 +--- a/hw/ppc/spapr_events.c ++++ b/hw/ppc/spapr_events.c +@@ -659,8 +659,7 @@ static void spapr_hotplug_req_event(uint8_t hp_id, uint8_t hp_action, + /* we should not be using count_indexed value unless the guest + * supports dedicated hotplug event source + */ +- g_assert(!SPAPR_MACHINE_GET_CLASS(spapr)->pre_6_0_memory_unplug || +- spapr_ovec_test(spapr->ov5_cas, OV5_HP_EVT)); ++ g_assert(spapr_memory_hot_unplug_supported(spapr)); + hp->drc_id.count_indexed.count = + cpu_to_be32(drc_id->count_indexed.count); + hp->drc_id.count_indexed.index = +diff --git a/hw/ppc/spapr_ovec.c b/hw/ppc/spapr_ovec.c +index dd003f1763..b2567caa5c 100644 +--- a/hw/ppc/spapr_ovec.c ++++ b/hw/ppc/spapr_ovec.c +@@ -125,6 +125,13 @@ bool spapr_ovec_test(SpaprOptionVector *ov, long bitnr) + return test_bit(bitnr, ov->bitmap) ? true : false; + } + ++bool spapr_ovec_empty(SpaprOptionVector *ov) ++{ ++ g_assert(ov); ++ ++ return bitmap_empty(ov->bitmap, OV_MAXBITS); ++} ++ + static void guest_byte_to_bitmap(uint8_t entry, unsigned long *bitmap, + long bitmap_offset) + { +diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h +index 4941fe9b4f..5952942362 100644 +--- a/include/hw/ppc/spapr.h ++++ b/include/hw/ppc/spapr.h +@@ -142,7 +142,6 @@ struct SpaprMachineClass { + hwaddr rma_limit; /* clamp the RMA to this size */ + bool pre_5_1_assoc_refpoints; + bool pre_5_2_numa_associativity; +- bool pre_6_0_memory_unplug; + + bool has_power9_support; + void (*phb_placement)(SpaprMachineState *spapr, uint32_t index, +@@ -954,4 +953,5 @@ bool spapr_check_pagesize(SpaprMachineState *spapr, hwaddr pagesize, + + void spapr_set_all_lpcrs(target_ulong value, target_ulong mask); + hwaddr spapr_get_rtas_addr(void); ++bool spapr_memory_hot_unplug_supported(SpaprMachineState *spapr); + #endif /* HW_SPAPR_H */ +diff --git a/include/hw/ppc/spapr_ovec.h b/include/hw/ppc/spapr_ovec.h +index d4dee9e06a..48b716a060 100644 +--- a/include/hw/ppc/spapr_ovec.h ++++ b/include/hw/ppc/spapr_ovec.h +@@ -71,6 +71,7 @@ void spapr_ovec_cleanup(SpaprOptionVector *ov); + void spapr_ovec_set(SpaprOptionVector *ov, long bitnr); + void spapr_ovec_clear(SpaprOptionVector *ov, long bitnr); + bool spapr_ovec_test(SpaprOptionVector *ov, long bitnr); ++bool spapr_ovec_empty(SpaprOptionVector *ov); + SpaprOptionVector *spapr_ovec_parse_vector(target_ulong table_addr, int vector); + int spapr_dt_ovec(void *fdt, int fdt_offset, + SpaprOptionVector *ov, const char *name); +-- +2.18.4 + diff --git a/kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch b/kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch new file mode 100644 index 0000000..f04d944 --- /dev/null +++ b/kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch @@ -0,0 +1,71 @@ +From 5840880e2ed3747464242e0559a6cf7ec4e55a11 Mon Sep 17 00:00:00 2001 +From: "plai@redhat.com" +Date: Thu, 21 Jan 2021 17:43:53 -0500 +Subject: [PATCH 3/5] x86/cpu: Add AVX512_FP16 cpu feature + +RH-Author: plai@redhat.com +Message-id: <20210121174353.16032-1-plai@redhat.com> +Patchwork-id: 100758 +O-Subject: [RHEL8.4 AV qemu-kvm PATCH] x86/cpu: Add AVX512_FP16 cpu feature +Bugzilla: 1838738 +RH-Acked-by: Eduardo Habkost +RH-Acked-by: Michael S. Tsirkin +RH-Acked-by: Bandan Das + +From: Cathy Zhang + +BZ https://bugzilla.redhat.com/show_bug.cgi?id=1838738 +Brew: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34299228 + x86 https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=34299267 +Branch rhel-av-8.4.0 + +Tested on intel-eaglestream-spr-01.khw1.lab.eng.bos.redhat.com. +All flags found as expected + avx512_vp2intersect, serialize, and avx512_fp16 +except: + tsxldtrk + +Cpuid reports CPUID.(7.0).EDX[16] isn't enabled on this CPU. +Leaf Subleaf EAX EBX ECX EDX +00000007 00000000: 00000001 .... f3bfbfef .... fa417f5e ^.A. ff8c4532 2E.. + +Already in rhel-av-8.4.0 (rebased to v5.2.0 ): + 353f98c9a x86/cpu: Enable AVX512_VP2INTERSECT cpu feature + 5dd13f2a5 target/i386: Add SERIALIZE cpu feature + b3c7344e3 target/i386: Enable TSX Suspend Load Address Tracking feature + +Signed-off-by: Eduardo Lima (Etrunko) +--- + target/i386/cpu.c | 2 +- + target/i386/cpu.h | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +diff --git a/target/i386/cpu.c b/target/i386/cpu.c +index dc592e990e..f944b41573 100644 +--- a/target/i386/cpu.c ++++ b/target/i386/cpu.c +@@ -977,7 +977,7 @@ static FeatureWordInfo feature_word_info[FEATURE_WORDS] = { + "avx512-vp2intersect", NULL, "md-clear", NULL, + NULL, NULL, "serialize", NULL, + "tsx-ldtrk", NULL, NULL /* pconfig */, NULL, +- NULL, NULL, NULL, NULL, ++ NULL, NULL, NULL, "avx512-fp16", + NULL, NULL, "spec-ctrl", "stibp", + NULL, "arch-capabilities", "core-capability", "ssbd", + }, +diff --git a/target/i386/cpu.h b/target/i386/cpu.h +index 88e8586f8f..a3db7e3c6c 100644 +--- a/target/i386/cpu.h ++++ b/target/i386/cpu.h +@@ -783,6 +783,8 @@ typedef uint64_t FeatureWordArray[FEATURE_WORDS]; + #define CPUID_7_0_EDX_SERIALIZE (1U << 14) + /* TSX Suspend Load Address Tracking instruction */ + #define CPUID_7_0_EDX_TSX_LDTRK (1U << 16) ++/* AVX512_FP16 instruction */ ++#define CPUID_7_0_EDX_AVX512_FP16 (1U << 23) + /* Speculation Control */ + #define CPUID_7_0_EDX_SPEC_CTRL (1U << 26) + /* Single Thread Indirect Branch Predictors */ +-- +2.18.4 + diff --git a/qemu-kvm.spec b/qemu-kvm.spec index 50db574..fa863e7 100644 --- a/qemu-kvm.spec +++ b/qemu-kvm.spec @@ -64,7 +64,7 @@ Requires: %{name}-block-ssh = %{epoch}:%{version}-%{release} Summary: QEMU is a machine emulator and virtualizer Name: qemu-kvm Version: 5.2.0 -Release: 4%{?dist} +Release: 5%{?dist} # Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped Epoch: 15 License: GPLv2 and GPLv2+ and CC-BY @@ -145,6 +145,16 @@ Patch0049: 0049-RHEL-Switch-pvpanic-test-to-q35.patch Patch0050: 0050-8.4-x86-machine-type.patch Patch0051: 0051-memory-clamp-cached-translation-in-case-it-points-to.patch Patch0054: 0054-Drop-bogus-IPv6-messages.patch +# For bz#1914069 - [ppc64le] have this fix for rhel8.4 av (spapr: Allow memory unplug to always succeed) +Patch55: kvm-spapr-Allow-memory-unplug-to-always-succeed.patch +# For bz#1914069 - [ppc64le] have this fix for rhel8.4 av (spapr: Allow memory unplug to always succeed) +Patch56: kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch +# For bz#1838738 - [Intel 8.4 FEAT] qemu-kvm Sapphire Rapids (SPR) New Instructions (NIs) - Fast Train +Patch57: kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch +# For bz#1904268 - [RFE] [HPEMC] qemu-kvm: support up to 710 VCPUs +Patch58: kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch +# For bz#1922170 - Enable vfio-ccw in AV +Patch59: kvm-config-enable-VFIO_CCW.patch BuildRequires: wget BuildRequires: rpm-build @@ -1325,6 +1335,21 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || : %changelog +* Tue Feb 02 2021 Eduardo Lima (Etrunko) - 5.2.0-5.el8 +- kvm-spapr-Allow-memory-unplug-to-always-succeed.patch [bz#1914069] +- kvm-spapr-Improve-handling-of-memory-unplug-with-old-gue.patch [bz#1914069] +- kvm-x86-cpu-Add-AVX512_FP16-cpu-feature.patch [bz#1838738] +- kvm-q35-Increase-max_cpus-to-710-on-pc-q35-rhel8-machine.patch [bz#1904268] +- kvm-config-enable-VFIO_CCW.patch [bz#1922170] +- Resolves: bz#1914069 + ([ppc64le] have this fix for rhel8.4 av (spapr: Allow memory unplug to always succeed)) +- Resolves: bz#1838738 + ([Intel 8.4 FEAT] qemu-kvm Sapphire Rapids (SPR) New Instructions (NIs) - Fast Train) +- Resolves: bz#1904268 + ([RFE] [HPEMC] qemu-kvm: support up to 710 VCPUs) +- Resolves: bz#1922170 + (Enable vfio-ccw in AV) + * Wed Jan 27 2021 Danilo Cesar Lemes de Paula - 5.2.0-4.el8 - kvm-Drop-bogus-IPv6-messages.patch [bz#1918061] - Resolves: bz#1918061