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
|
||
|
|