Re: 2.6.26, PAT and AMD family 6

From: Yinghai Lu
Date: Tue May 06 2008 - 22:41:29 EST


On Tue, May 6, 2008 at 6:48 PM, Rene Herman <rene.herman@xxxxxxxxxxxx> wrote:
> Good day.
>
> On 2.6.25 and below, my /proc/cpuinfo looks like:
>
> processor : 0
> vendor_id : AuthenticAMD
> cpu family : 6
> model : 7
> model name : AMD Duron(tm) Processor
> stepping : 1
> cpu MHz : 1312.969
> cache size : 64 KB
> fdiv_bug : no
> hlt_bug : no
> f00f_bug : no
> coma_bug : no
> fpu : yes
> fpu_exception : yes
> cpuid level : 1
> wp : yes
> flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov
> pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow ts
> bogomips : 2628.68
> clflush size : 32
>
> while on current mainline PAT and TS (Temperature Sensor) drop from the
> feature flags:
>
> flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov
> pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow
>
> With respect to PAT, I guess it's 9307cacad0dfe3749f00303125c6f7f0523e5616,
> "x86: pat cpu feature bit setting for known cpus" but what's this about?
>
> Did my cpuinfo lie upto this point or shouldn't the flag be cleared? The
> commit message for that change is completely and totally unhelpful.

others like to to whitebox methods, ..., please try attach patch to
see if duron support PAT.

YH
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index a428ffc..81483ec 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -314,6 +314,8 @@ static void __cpuinit early_get_cap(struct cpuinfo_x86 *c)
case X86_VENDOR_AMD:
if (c->x86 >= 0xf && c->x86 <= 0x11)
set_cpu_cap(c, X86_FEATURE_PAT);
+ if (c->x86 == 6 && c->x86_modes == 7)
+ set_cpu_cap(c, X86_FEATURE_PAT);
break;
case X86_VENDOR_INTEL:
if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15))