[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/1] target-i386: Correct family/model/stepping
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH 1/1] target-i386: Correct family/model/stepping for Opteron_G3 (2350) |
Date: |
Fri, 30 Sep 2016 13:14:38 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 |
On 30/09/2016 12:28, Denis V. Lunev wrote:
> From: Evgeny Yakovlev <address@hidden>
>
> 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 <address@hidden>
> Signed-off-by: Denis V. Lunev <address@hidden>
> CC: Paolo Bonzini <address@hidden>
> CC: Richard Henderson <address@hidden>
> CC: Eduardo Habkost <address@hidden>
> ---
> 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