archive mirror
 help / color / mirror / Atom feed
From: "J.A. Magallon" <>
Subject: Re: [Fwd: Re: Kernel 2.4 CPU Arch issues]
Date: Wed, 23 Jul 2003 03:17:56 +0200	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>; from on Mon, Jul 21, 2003 at 02:00:05 +0200

On 07.21, Alan Cox wrote:
> On Llu, 2003-07-21 at 00:29, William M. Quarles wrote:
> > Well, you separated the Pentium and Pentium-MMX.  It's the exact same
> > difference between Pentium Pro and Pentium-II: MMX technology.  That's
> > the point.
> This makes no difference to the kernel. Splitting PPro would only make
> sense for one reason. The Pentium Pro needs store barriers on
> spin_unlock and friends, the PII and later do not. However if this was
> done you'd also want to check for PPro boots with a PII kernel and panic
> which isn't currently done

(sorry for the late answer, I have been out for a course...)

Is this done now ? Where is detected if you try to boot a P3-built kernel on a
PPro ?

AFAIK, P2 is more similar to a P3 than to a PPro in terms of architecture.
Some people say that P3=P2+SSE-50%cache.
As features like fxsr or cmov are detected independent of gcc flags
(/proc/cpuinfo...) I think this can affect on how gcc schedules instructions.
If I grep -r IUMIII * /usr/src/linux, I just get this:

/* Prefetch instructions for Pentium III and AMD Athlon */

extern inline void prefetch(const void *x)
    __asm__ __volatile__ ("prefetchnta (%0)" : : "r"(x));

And in terms of CONFIG_ flags, the differences from 686 to PIII are:

-  bool 'PGE extensions (not for Cyrix/Transmeta)' CONFIG_X86_PGE
+  define_bool CONFIG_X86_PGE y
-  define_bool CONFIG_X86_PPRO_FENCE y

In short:
- P3 is separate from 686 just for the prefetch and for the PPRO_FENCE
- P2 can kill also the PPRO_FENCE

so you I can suppose the main reason to separate P3 is that you trust gcc
to generate better code if it knows its a P3. So same applies to P2, as
gcc explicitely says that i686 is a pentiumpro, but says nothing about
being also a P2:

info gcc:

     While picking a specific CPU-TYPE will schedule things
     appropriately for that particular chip, the compiler will not
     generate any code that does not run on the i386 without the
     `-march=CPU-TYPE' option being used.  `i586' is equivalent to
     `pentium' and `i686' is equivalent to `pentiumpro'.  `k6' and
     `athlon' are the AMD chips as opposed to the Intel ones.


J.A. Magallon <>      \                 Software is like sex:                         \           It's better when it's free
Mandrake Linux release 9.2 (Cooker) for i586
Linux 2.4.22-pre7-jam1m (gcc 3.3.1 (Mandrake Linux 9.2 3.3.1-0.6mdk))

      parent reply	other threads:[~2003-07-23  1:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-20 23:29 [Fwd: Re: Kernel 2.4 CPU Arch issues] William M. Quarles
2003-07-21  0:00 ` Alan Cox
2003-07-21  0:25   ` William M. Quarles
2003-07-21  6:39     ` Alan Cox
2003-07-21 19:23       ` jw schultz
2003-07-23  1:17   ` J.A. Magallon [this message]

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:

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

  git send-email \ \ \ \

* 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;
as well as URLs for NNTP newsgroup(s).