Message ID | 1475495402-5321-1-git-send-email-den@openvz.org |
---|---|
State | New |
Headers | show |
On Mon, Oct 03, 2016 at 02:50:02PM +0300, Denis V. Lunev wrote: > From: Evgeny Yakovlev <eyakovlev@virtuozzo.com> > > Current CPU definition for AMD Opteron third generation includes > features like SSE4a and LAHF_LM support in emulated CPUID. These > features are present in K8 rev.E or K10 CPUs and later. However, > current G3 family and model describe 2nd generation K8 cores instead. > > This is incorrect but was considered harmless until our tests found a > problem with linux kernels >= 3.10 (and maybe earlier) which specifically > check for Opteron K8 model when parsing CPUID leaf 0x80000001: > http://lxr.free-electrons.com/source/arch/x86/kernel/cpu/amd.c?v=3.16#L552 > This code will disable LAHF_LM feature in /proc/cpuinfo if model number > is inconsistent. > > This change sets Opteron_G3 family/model/stepping to 16/2/3 which is > a proper Opteron 3rd generation 2350 CPU. > > Signed-off-by: Evgeny Yakovlev <eyakovlev@virtuozzo.com> > Signed-off-by: Denis V. Lunev <den@openvz.org> > CC: Paolo Bonzini <pbonzini@redhat.com> > CC: Richard Henderson <rth@twiddle.net> > CC: Eduardo Habkost <ehabkost@redhat.com> Applied to x86-next. Thanks.
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 47bdf10..cb2df83 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -379,6 +379,21 @@ bool e820_get_entry(int, uint32_t, uint64_t *, uint64_t *); .driver = TYPE_X86_CPU,\ .property = "full-cpuid-auto-level",\ .value = "off",\ + },\ + {\ + .driver = "Opteron_G3" "-" TYPE_X86_CPU,\ + .property = "family",\ + .value = "15",\ + },\ + {\ + .driver = "Opteron_G3" "-" TYPE_X86_CPU,\ + .property = "model",\ + .value = "6",\ + },\ + {\ + .driver = "Opteron_G3" "-" TYPE_X86_CPU,\ + .property = "stepping",\ + .value = "1",\ }, #define PC_COMPAT_2_6 \ diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 333309b..d1c3ad1 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1425,9 +1425,9 @@ static X86CPUDefinition builtin_x86_defs[] = { .name = "Opteron_G3", .level = 5, .vendor = CPUID_VENDOR_AMD, - .family = 15, - .model = 6, - .stepping = 1, + .family = 16, + .model = 2, + .stepping = 3, .features[FEAT_1_EDX] = CPUID_VME | CPUID_SSE2 | CPUID_SSE | CPUID_FXSR | CPUID_MMX | CPUID_CLFLUSH | CPUID_PSE36 | CPUID_PAT | CPUID_CMOV | CPUID_MCA |