7f165dc009
- kvm-Revert-i386-Fix-pkg_id-offset-for-EPYC-cpu-models.patch [bz#1873417] - kvm-Revert-target-i386-Enable-new-apic-id-encoding-for-E.patch [bz#1873417] - kvm-Revert-hw-i386-Move-arch_id-decode-inside-x86_cpus_i.patch [bz#1873417] - kvm-Revert-i386-Introduce-use_epyc_apic_id_encoding-in-X.patch [bz#1873417] - kvm-Revert-hw-i386-Introduce-apicid-functions-inside-X86.patch [bz#1873417] - kvm-Revert-target-i386-Cleanup-and-use-the-EPYC-mode-top.patch [bz#1873417] - kvm-Revert-hw-386-Add-EPYC-mode-topology-decoding-functi.patch [bz#1873417] - kvm-nvram-Exit-QEMU-if-NVRAM-cannot-contain-all-prom-env.patch [bz#1867739] - kvm-usb-fix-setup_len-init-CVE-2020-14364.patch [bz#1869715] - kvm-Remove-explicit-glusterfs-api-dependency.patch [bz#1872853] - kvm-disable-virgl.patch [bz#1831271] - Resolves: bz#1831271 (Drop virgil acceleration support and remove virglrenderer dependency) - Resolves: bz#1867739 (-prom-env does not validate input) - Resolves: bz#1869715 (CVE-2020-14364 qemu-kvm: QEMU: usb: out-of-bounds r/w access issue while processing usb packets [rhel-av-8.3.0]) - Resolves: bz#1872853 (move the glusterfs dependency out of qemu-kvm-core to the glusterfs module) - Resolves: bz#1873417 (AMD/NUMA topology - revert 5.1 changes)
91 lines
3.2 KiB
Diff
91 lines
3.2 KiB
Diff
From bc3db6832c57b1b28204b376f3c4c61cadfe0a35 Mon Sep 17 00:00:00 2001
|
|
From: Igor Mammedov <imammedo@redhat.com>
|
|
Date: Fri, 28 Aug 2020 16:23:46 -0400
|
|
Subject: [PATCH 04/11] Revert "i386: Introduce use_epyc_apic_id_encoding in
|
|
X86CPUDefinition"
|
|
|
|
RH-Author: Igor Mammedov <imammedo@redhat.com>
|
|
Message-id: <20200828162349.1616028-5-imammedo@redhat.com>
|
|
Patchwork-id: 98249
|
|
O-Subject: [RHEL-AV 8.3.0 qemu-kvm PATCH 4/7] Revert "i386: Introduce use_epyc_apic_id_encoding in X86CPUDefinition"
|
|
Bugzilla: 1873417
|
|
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
RH-Acked-by: Eduardo Habkost <ehabkost@redhat.com>
|
|
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
|
|
|
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1873417
|
|
Brew: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=31005031
|
|
Branch: rhel-av-8.3.0
|
|
Upstream: RHEL only
|
|
Tested: locally
|
|
|
|
A regression was introduced since qemu-5.0, when EPYC specific
|
|
APIC ID encoding was introduced. Which leads to migration failing
|
|
with:
|
|
"
|
|
: Unknown savevm section or instance 'apic' 4. Make sure that your current VM setup matches your saved VM setup, including any hotplugged devices
|
|
: load of migration failed: Invalid argument
|
|
"
|
|
when EPYC cpu model and more than 1 numa node is used.
|
|
EPYC specific APIC ID encoding is considered as failed
|
|
experiment and upstream is preparing to revert it as well.
|
|
|
|
This reverts commit 0c1538cb1a26287c072645f4759b9872b1596d79.
|
|
|
|
Signed-off-by: Igor Mammedov <imammedo@redhat.com>
|
|
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
|
---
|
|
target/i386/cpu.c | 16 ----------------
|
|
target/i386/cpu.h | 1 -
|
|
2 files changed, 17 deletions(-)
|
|
|
|
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
|
|
index 66b6a77b2f..5e3d086f05 100644
|
|
--- a/target/i386/cpu.c
|
|
+++ b/target/i386/cpu.c
|
|
@@ -1638,10 +1638,6 @@ typedef struct X86CPUDefinition {
|
|
FeatureWordArray features;
|
|
const char *model_id;
|
|
CPUCaches *cache_info;
|
|
-
|
|
- /* Use AMD EPYC encoding for apic id */
|
|
- bool use_epyc_apic_id_encoding;
|
|
-
|
|
/*
|
|
* Definitions for alternative versions of CPU model.
|
|
* List is terminated by item with version == 0.
|
|
@@ -1683,18 +1679,6 @@ static const X86CPUVersionDefinition *x86_cpu_def_get_versions(X86CPUDefinition
|
|
return def->versions ?: default_version_list;
|
|
}
|
|
|
|
-bool cpu_x86_use_epyc_apic_id_encoding(const char *cpu_type)
|
|
-{
|
|
- X86CPUClass *xcc = X86_CPU_CLASS(object_class_by_name(cpu_type));
|
|
-
|
|
- assert(xcc);
|
|
- if (xcc->model && xcc->model->cpudef) {
|
|
- return xcc->model->cpudef->use_epyc_apic_id_encoding;
|
|
- } else {
|
|
- return false;
|
|
- }
|
|
-}
|
|
-
|
|
static CPUCaches epyc_cache_info = {
|
|
.l1d_cache = &(CPUCacheInfo) {
|
|
.type = DATA_CACHE,
|
|
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
|
|
index d5ad42d694..5ff8ad8427 100644
|
|
--- a/target/i386/cpu.h
|
|
+++ b/target/i386/cpu.h
|
|
@@ -1918,7 +1918,6 @@ void cpu_clear_apic_feature(CPUX86State *env);
|
|
void host_cpuid(uint32_t function, uint32_t count,
|
|
uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);
|
|
void host_vendor_fms(char *vendor, int *family, int *model, int *stepping);
|
|
-bool cpu_x86_use_epyc_apic_id_encoding(const char *cpu_type);
|
|
|
|
/* helper.c */
|
|
bool x86_cpu_tlb_fill(CPUState *cs, vaddr address, int size,
|
|
--
|
|
2.27.0
|
|
|