mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Hazelton <dhazelton@enter.net>
To: Rene Herman <rene.herman@keyaccess.nl>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>, Ingo Molnar <mingo@elte.hu>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.26, PAT and AMD family 6
Date: Wed, 7 May 2008 15:39:30 -0400	[thread overview]
Message-ID: <200805071539.32594.dhazelton@enter.net> (raw)
In-Reply-To: <4821A7E2.6080101@keyaccess.nl>

On Wednesday 07 May 2008 09:00:18 Rene Herman wrote:
> On 07-05-08 04:39, Yinghai Lu wrote:
> > On Tue, May 6, 2008 at 6:48 PM, Rene Herman <rene.herman@keyaccess.nl> 
wrote:
> >>  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
>
> [ ... ]
>
> >>  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
> >>
> >>  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.
> >
> > 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))
>
> s/modes/model/ but, as far as I'm aware, works fine other than that. When I
> boot with CONFIG_X86_PAT after applying that, I see:
>
> 	x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
>
> and PAT is retained in the feature flags. However, this I do not consider
> very surprising. Why is this code doing what it is doing in the first
> place?
>
> These feature flags are read from hardware in the CPUID instruction. Why is
> this code then going "ah, this CPU may _claim_ PAT but we won't actually
> believe it unless it's model foo, bar or baz". Is that feature flag buggy?

HPA asked about why they used a whitelist instead of a blacklist in [1]. The 
answer (in [2]) was that those are the CPU's that are guaranteed to properly 
support PAT (no known or potential errata). However in [3] Dean Gaudet 
complained about the AMD detection code having a limit that the Intel 
detection code did not. Perhaps changing the 'c->x86 <= 0x11' test in the 
X86_VENDOR_AMD block to not exist?

> 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);
                     ^^^^^---- Here in Rene's patch...
Wouldn't this be better if written the same as the Intel side, ie:
if (c->x86 >= 0xF && (c->x86 == 6 && c->x86_model == 7))
(or even with c->x86_model >= 7  ?)

>               break;
>       case X86_VENDOR_INTEL:
>               if (c->x86 == 0xF || (c->x86 == 6 && c->x86_model >= 15))

DRH

[1] http://lkml.org/lkml/2008/3/25/118
[2] http://lkml.org/lkml/2008/3/25/292
[3] http://lkml.org/lkml/2008/3/30/37

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.

  parent reply	other threads:[~2008-05-07 19:40 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-07  1:48 Rene Herman
2008-05-07  2:39 ` Yinghai Lu
2008-05-07 12:46   ` Undocumented and duplicated code Adrian Bunk
2008-05-07 13:14     ` Rene Herman
2008-05-07 20:52     ` 2.6.26, PAT and AMD family 6 Thomas Gleixner
2008-05-07 20:59       ` Pavel Machek
2008-05-07 21:10       ` Rene Herman
2008-05-07 21:41         ` Thomas Gleixner
2008-05-07 21:46           ` Adrian Bunk
2008-05-07 22:08             ` Thomas Gleixner
2008-05-07 22:29               ` Pavel Machek
2008-05-07 22:04           ` Rene Herman
2008-05-07 22:23             ` Rene Herman
2008-05-07 22:31           ` Yinghai Lu
2008-05-07 22:57         ` H. Peter Anvin
2008-05-08  0:02           ` Rene Herman
2008-05-08  0:03             ` H. Peter Anvin
2008-05-08  0:10               ` Rene Herman
2008-05-08  0:19                 ` Linus Torvalds
2008-05-08  0:28                   ` Rene Herman
2008-05-08  1:57                     ` [PATCH] x86: introduce a new Linux defined feature flag for PAT support Rene Herman
2008-05-08  1:58                       ` Linus Torvalds
2008-05-08  2:11                         ` H. Peter Anvin
2008-05-08  2:17                           ` Rene Herman
2008-05-08  2:24                           ` Linus Torvalds
2008-05-08  2:28                             ` H. Peter Anvin
2008-05-08 12:49                               ` Thomas Gleixner
2008-05-08 13:08                                 ` Ingo Molnar
2008-05-08 16:44                                   ` H. Peter Anvin
2008-05-08 13:11                                 ` Adrian Bunk
2008-05-08 13:33                                   ` Thomas Gleixner
2008-05-08 14:44                                 ` Rene Herman
2008-05-08 14:53                                   ` Thomas Gleixner
2008-05-08 16:48                                     ` H. Peter Anvin
2008-05-08 16:53                                       ` Rene Herman
2008-05-08  2:04                       ` [PATCH] x86: enable PAT support on AMD Duron model 7 Rene Herman
2008-05-08  2:08                         ` Arjan van de Ven
2008-05-08  2:12                           ` Rene Herman
2008-05-08 10:19                       ` [PATCH] x86: introduce a new Linux defined feature flag for PAT support Andi Kleen
2008-05-08 12:40                         ` Rene Herman
2008-05-08 13:39                           ` Andi Kleen
2008-05-08 15:32                             ` Alan Cox
2008-05-08 16:51                               ` H. Peter Anvin
2008-05-08  0:21                 ` 2.6.26, PAT and AMD family 6 Thomas Gleixner
2008-05-08  0:30                   ` Rene Herman
2008-05-08  0:15               ` Linus Torvalds
2008-05-08  0:31                 ` H. Peter Anvin
2008-05-08 10:14                   ` Andi Kleen
2008-05-08 16:43                     ` H. Peter Anvin
2008-05-07 21:23       ` Adrian Bunk
2008-05-07 21:54         ` Thomas Gleixner
2008-05-07 22:09           ` Adrian Bunk
2008-05-07 22:14           ` Pavel Machek
2008-05-07 22:22             ` Yinghai Lu
2008-05-07 22:37               ` Pavel Machek
2008-05-07 22:40                 ` Yinghai Lu
2008-05-07 23:02                   ` Pavel Machek
2008-05-07 23:02                 ` Thomas Gleixner
2008-05-07 23:10                   ` Pavel Machek
2008-05-07 23:46                     ` Thomas Gleixner
2008-05-07 22:23             ` Yinghai Lu
2008-05-07 22:39               ` Pavel Machek
2008-05-07 22:45                 ` Yinghai Lu
2008-05-07 23:06                   ` Pavel Machek
2008-05-07 23:01               ` H. Peter Anvin
2008-05-07 22:26             ` Yinghai Lu
2008-05-07 22:30               ` Rene Herman
2008-05-07 22:58             ` Thomas Gleixner
2008-05-07 13:00   ` Rene Herman
2008-05-07 13:42     ` Arjan van de Ven
2008-05-07 14:09       ` Rene Herman
2008-05-07 14:24         ` Arjan van de Ven
2008-05-07 19:08           ` Rene Herman
2008-05-07 22:17             ` Arjan van de Ven
2008-05-07 19:39     ` Daniel Hazelton [this message]
2008-05-07 20:06       ` Rene Herman
2008-05-07 20:16         ` Yinghai Lu
2008-05-07 20:18           ` Yinghai Lu
2008-05-08  4:06             ` H. Peter Anvin
2008-05-07 20:44 matthieu castet
2008-05-07 20:46 ` matthieu castet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200805071539.32594.dhazelton@enter.net \
    --to=dhazelton@enter.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rene.herman@keyaccess.nl \
    --cc=yhlu.kernel@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®