From bc3db6832c57b1b28204b376f3c4c61cadfe0a35 Mon Sep 17 00:00:00 2001 From: Igor Mammedov 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 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 RH-Acked-by: Eduardo Habkost RH-Acked-by: Dr. David Alan Gilbert 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 Signed-off-by: Danilo C. L. de Paula --- 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