On 30/09/2016 12:28, Denis V. Lunev wrote: > From: Evgeny Yakovlev <eyakov...@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 out 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 <eyakov...@virtuozzo.com> > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Paolo Bonzini <pbonz...@redhat.com> > CC: Richard Henderson <r...@twiddle.net> > CC: Eduardo Habkost <ehabk...@redhat.com> > --- > target-i386/cpu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > 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 > | >
This needs the usual compatibility gunk for versions <= 2.7. Thanks, Paolo