Skip to contentSkip to conversation

[Fwd: Re: Kernel 2.4 CPU Arch issues]

Fwd: Re: Kernel 2.4 CPU Arch issues William M. Quarles 4 participants 6 messages Jul 20, 2003 – Jul 23, 2003

lore
Share & tools
lore
#0 lore raw

-------- Original Message --------
Subject: Re: Kernel 2.4 CPU Arch issues
Date: Sun, 20 Jul 2003 19:23:24 -0400
From: William M. Quarles <[email protected]>
Organization: James Madison University
To: Mark Hahn <[email protected]>
References: <Pine.LNX.4.44.0307201920260.4900-100000@coffee.psychology.mcmaster.ca>

Quoted 6 lines · Mark Hahn
Quoted 1 line

Something like this ?

is there any real point? what post-p6 features would you expect to make a difference?

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.

Signature · 13 lines
William M. Quarles

[email protected]
[email protected]
[email protected]


-- 
William M. Quarles

[email protected]
[email protected]
[email protected]
#1 lore raw
Quoted 3 lines · William M. Quarles

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

#2 lore raw
Quoted 7 lines · Alan Cox
Quoted 3 lines · William M. Quarles

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.

Quoted 6 lines

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

Well, wouldn't changing the gcc -march option and/or adding -mcpu options for the various processors in the Makefile make a difference, as the patchfile suggests?

Signature · 5 lines
William M. Quarles

[email protected]
[email protected]
[email protected]
#3 lore raw
Quoted 3 lines · William M. Quarles

Well, wouldn't changing the gcc -march option and/or adding -mcpu options for the various processors in the Makefile make a difference, as the patchfile suggests?

Currently - no. gcc knows a lot more processor names that require individual unique optimisation

#4 lore raw
Quoted 7 lines · Alan Cox
Quoted 3 lines · William M. Quarles

Well, wouldn't changing the gcc -march option and/or adding -mcpu options for the various processors in the Makefile make a difference, as the patchfile suggests?

Currently - no. gcc knows a lot more processor names that require individual unique optimisation

no && s/that/than/

Signature · 5 lines
________________________________________________________________
	J.W. Schultz            Pegasystems Technologies
	email address:		[email protected]

		Remember Cernan and Schmitt
#5 lore raw
In reply to Alan Cox
Quoted 11 lines · Alan Cox
Quoted 3 lines · William M. Quarles

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 */ #if defined(CONFIG_MPENTIUMIII) || defined (CONFIG_MPENTIUM4)

#define ARCH_HAS_PREFETCH
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:

`-mcpu=CPU-TYPE'
...
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.

;)

Signature · 4 lines
J.A. Magallon <[email protected]>      \                 Software is like sex:
werewolf.able.es                         \           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))