All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: Pentium M config option for 2.6
@ 2004-01-04 14:10 Mikael Pettersson
  2004-01-04 14:43 ` Tomas Szepe
  2004-03-29 15:42 ` Tomas Szepe
  0 siblings, 2 replies; 33+ messages in thread
From: Mikael Pettersson @ 2004-01-04 14:10 UTC (permalink / raw)
  To: szepe; +Cc: akpm, linux-kernel

On Date: Sun, 4 Jan 2004 13:33:58 +0100, Tomas Szepe wrote:
> > IOW, don't lie to the compiler and pretend P-M == P4
> > with that -march=pentium4.
> 
> What do you recommend to use as march then?  There is
> no pentiumm subarch support in gcc yet;  I was convinced
> p4 was the closest match.

march=pentium3 is the closest safe choice, at least
until gcc implements P-M specific support.

/Mikael

^ permalink raw reply	[flat|nested] 33+ messages in thread
* Re: Pentium M config option for 2.6
@ 2004-03-29 15:42 Mikael Pettersson
  0 siblings, 0 replies; 33+ messages in thread
From: Mikael Pettersson @ 2004-03-29 15:42 UTC (permalink / raw)
  To: Administrator; +Cc: akpm, linux-kernel

On Date: Sun, 4 Jan 2004 13:33:58 +0100, Tomas Szepe wrote:
> > IOW, don't lie to the compiler and pretend P-M == P4
> > with that -march=pentium4.
> 
> What do you recommend to use as march then?  There is
> no pentiumm subarch support in gcc yet;  I was convinced
> p4 was the closest match.

march=pentium3 is the closest safe choice, at least
until gcc implements P-M specific support.

/Mikael

^ permalink raw reply	[flat|nested] 33+ messages in thread
* Re: Pentium M config option for 2.6
@ 2004-03-29 15:42 Mikael Pettersson
  0 siblings, 0 replies; 33+ messages in thread
From: Mikael Pettersson @ 2004-03-29 15:42 UTC (permalink / raw)
  To: Administrator; +Cc: akpm, linux-kernel

On Sun, 4 Jan 2004 03:28:48 +0100, Tomas Szepe wrote:
>Since the Pentium M has 64 byte cache lines and is not a K7 or K8...  ;)
...
>--- a/arch/i386/Makefile	2003-09-28 11:38:05.000000000 +0200
>+++ b/arch/i386/Makefile	2004-01-04 03:02:52.000000000 +0100
>@@ -35,6 +35,7 @@
> cflags-$(CONFIG_MPENTIUMII)	+= $(call check_gcc,-march=pentium2,-march=i686)
> cflags-$(CONFIG_MPENTIUMIII)	+= $(call check_gcc,-march=pentium3,-march=i686)
> cflags-$(CONFIG_MPENTIUM4)	+= $(call check_gcc,-march=pentium4,-march=i686)
>+cflags-$(CONFIG_MPENTIUMM)	+= $(call check_gcc,-march=pentium4,-march=i686)
> cflags-$(CONFIG_MK6)		+= $(call check_gcc,-march=k6,-march=i586)
> # Please note, that patches that add -march=athlon-xp and friends are pointless.
> # They make zero difference whatsosever to performance at this time.

P-M is not a P4 core, it's an enhanced PIII core.
SSE2 was added, but compiler support for SSE2 f.p.
math shouldn't matter for the kernel.

Using P4 optimisations on a P-M may actually reduce
performance, due to the different micro-architectures.
(P4 made shifts and some leas more expensive, and
simple add/and/sub/etc less expensive.)

IOW, don't lie to the compiler and pretend P-M == P4
with that -march=pentium4.

And since P-M doesn't do SMP, does cache line size even
matter? There are no locks to protect from ping-ponging.

/Mikael

^ permalink raw reply	[flat|nested] 33+ messages in thread
* Re: Pentium M config option for 2.6
@ 2004-01-05 15:09 Amit Gurdasani
  2004-01-05 15:22 ` Tim Schmielau
  0 siblings, 1 reply; 33+ messages in thread
From: Amit Gurdasani @ 2004-01-05 15:09 UTC (permalink / raw)
  To: linux-kernel

:On Date: Sun, 4 Jan 2004 13:33:58 +0100, Tomas Szepe wrote:
:> > IOW, don't lie to the compiler and pretend P-M == P4
:> > with that -march=pentium4.
:>
:> What do you recommend to use as march then?  There is
:> no pentiumm subarch support in gcc yet;  I was convinced
:> p4 was the closest match.
:
:march=pentium3 is the closest safe choice, at least
:until gcc implements P-M specific support.
:
:/Mikael

Perhaps -mcpu=pentium3 -march=pentium4 would be a good compromise? From the
GCC 3.3 info pages:

`-mcpu=CPU-TYPE'
     Tune to CPU-TYPE everything applicable about the generated code,
     except for the ABI and the set of available instructions. [...]

     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. [...]

`-march=CPU-TYPE'
     Generate instructions for the machine type CPU-TYPE.  The choices
     for CPU-TYPE are the same as for `-mcpu'.  Moreover, specifying
     `-march=CPU-TYPE' implies `-mcpu=CPU-TYPE'.

Amit

^ permalink raw reply	[flat|nested] 33+ messages in thread
* Re: Pentium M config option for 2.6
@ 2004-01-04 12:27 Mikael Pettersson
  2004-01-04 12:33 ` Tomas Szepe
                   ` (3 more replies)
  0 siblings, 4 replies; 33+ messages in thread
From: Mikael Pettersson @ 2004-01-04 12:27 UTC (permalink / raw)
  To: szepe; +Cc: akpm, linux-kernel

On Sun, 4 Jan 2004 03:28:48 +0100, Tomas Szepe wrote:
>Since the Pentium M has 64 byte cache lines and is not a K7 or K8...  ;)
...
>--- a/arch/i386/Makefile	2003-09-28 11:38:05.000000000 +0200
>+++ b/arch/i386/Makefile	2004-01-04 03:02:52.000000000 +0100
>@@ -35,6 +35,7 @@
> cflags-$(CONFIG_MPENTIUMII)	+= $(call check_gcc,-march=pentium2,-march=i686)
> cflags-$(CONFIG_MPENTIUMIII)	+= $(call check_gcc,-march=pentium3,-march=i686)
> cflags-$(CONFIG_MPENTIUM4)	+= $(call check_gcc,-march=pentium4,-march=i686)
>+cflags-$(CONFIG_MPENTIUMM)	+= $(call check_gcc,-march=pentium4,-march=i686)
> cflags-$(CONFIG_MK6)		+= $(call check_gcc,-march=k6,-march=i586)
> # Please note, that patches that add -march=athlon-xp and friends are pointless.
> # They make zero difference whatsosever to performance at this time.

P-M is not a P4 core, it's an enhanced PIII core.
SSE2 was added, but compiler support for SSE2 f.p.
math shouldn't matter for the kernel.

Using P4 optimisations on a P-M may actually reduce
performance, due to the different micro-architectures.
(P4 made shifts and some leas more expensive, and
simple add/and/sub/etc less expensive.)

IOW, don't lie to the compiler and pretend P-M == P4
with that -march=pentium4.

And since P-M doesn't do SMP, does cache line size even
matter? There are no locks to protect from ping-ponging.

/Mikael

^ permalink raw reply	[flat|nested] 33+ messages in thread
* Pentium M config option for 2.6
@ 2004-01-04  2:28 Tomas Szepe
  0 siblings, 0 replies; 33+ messages in thread
From: Tomas Szepe @ 2004-01-04  2:28 UTC (permalink / raw)
  To: akpm; +Cc: linux-kernel

Since the Pentium M has 64 byte cache lines and is not a K7 or K8...  ;)

-- 
Tomas Szepe <szepe@pinerecords.com>


diff -urN a/arch/i386/Kconfig b/arch/i386/Kconfig
--- a/arch/i386/Kconfig	2004-01-04 03:10:01.000000000 +0100
+++ b/arch/i386/Kconfig	2004-01-04 03:06:09.000000000 +0100
@@ -231,6 +231,13 @@
 	  correct cache shift, and applies any applicable Pentium III
 	  optimizations.
 
+config MPENTIUMM
+	bool "Pentium M (Banias/Centrino)"
+	help
+	  Select this for Intel Pentium M chips.  This option enables
+	  compile flags optimized for the chip, uses the correct cache
+	  shift, and applies any applicable Pentium III/IV optimizations.
+
 config MK6
 	bool "K6/K6-II/K6-III"
 	help
@@ -330,7 +337,7 @@
 	default "7" if MPENTIUM4 || X86_GENERIC
 	default "4" if MELAN || M486 || M386
 	default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2
-	default "6" if MK7 || MK8
+	default "6" if MPENTIUMM || MK7 || MK8
 
 config RWSEM_GENERIC_SPINLOCK
 	bool
@@ -379,17 +386,17 @@
 
 config X86_GOOD_APIC
 	bool
-	depends on MK7 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
+	depends on MK7 || MPENTIUMM || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
 	default y
 
 config X86_INTEL_USERCOPY
 	bool
-	depends on MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
+	depends on MPENTIUMM || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7
 	default y
 
 config X86_USE_PPRO_CHECKSUM
 	bool
-	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
+	depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUMM || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2
 	default y
 
 config X86_USE_3DNOW
@@ -512,7 +519,7 @@
 
 config X86_TSC
 	bool
-	depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
+	depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUMM || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
 	default y
 
 config X86_MCE
diff -urN a/arch/i386/Makefile b/arch/i386/Makefile
--- a/arch/i386/Makefile	2003-09-28 11:38:05.000000000 +0200
+++ b/arch/i386/Makefile	2004-01-04 03:02:52.000000000 +0100
@@ -35,6 +35,7 @@
 cflags-$(CONFIG_MPENTIUMII)	+= $(call check_gcc,-march=pentium2,-march=i686)
 cflags-$(CONFIG_MPENTIUMIII)	+= $(call check_gcc,-march=pentium3,-march=i686)
 cflags-$(CONFIG_MPENTIUM4)	+= $(call check_gcc,-march=pentium4,-march=i686)
+cflags-$(CONFIG_MPENTIUMM)	+= $(call check_gcc,-march=pentium4,-march=i686)
 cflags-$(CONFIG_MK6)		+= $(call check_gcc,-march=k6,-march=i586)
 # Please note, that patches that add -march=athlon-xp and friends are pointless.
 # They make zero difference whatsosever to performance at this time.
diff -urN a/include/asm-i386/module.h b/include/asm-i386/module.h
--- a/include/asm-i386/module.h	2003-08-23 01:52:22.000000000 +0200
+++ b/include/asm-i386/module.h	2004-01-04 03:08:17.000000000 +0100
@@ -28,6 +28,8 @@
 #define MODULE_PROC_FAMILY "PENTIUMIII "
 #elif defined CONFIG_MPENTIUM4
 #define MODULE_PROC_FAMILY "PENTIUM4 "
+#elif defined CONFIG_MPENTIUMM
+#define MODULE_PROC_FAMILY "PENTIUMM "
 #elif defined CONFIG_MK6
 #define MODULE_PROC_FAMILY "K6 "
 #elif defined CONFIG_MK7

^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2004-03-29 15:46 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-04 14:10 Pentium M config option for 2.6 Mikael Pettersson
2004-01-04 14:43 ` Tomas Szepe
2004-01-04 15:59   ` Ciaran McCreesh
2004-03-29 15:42   ` Ciaran McCreesh
2004-03-29 15:42 ` Tomas Szepe
  -- strict thread matches above, loose matches on Subject: below --
2004-03-29 15:42 Mikael Pettersson
2004-03-29 15:42 Mikael Pettersson
2004-01-05 15:09 Amit Gurdasani
2004-01-05 15:22 ` Tim Schmielau
2004-01-04 12:27 Mikael Pettersson
2004-01-04 12:33 ` Tomas Szepe
2004-01-06  6:07   ` Jakob Oestergaard
2004-03-29 15:46   ` Jakob Oestergaard
2004-01-04 15:03 ` Rob Love
2004-01-04 16:25   ` Dave Jones
2004-01-04 16:33     ` Rob Love
2004-01-04 16:50       ` Dave Jones
2004-01-04 17:01         ` Rob Love
2004-01-04 17:14           ` Tomas Szepe
2004-03-29 15:42           ` Tomas Szepe
2004-01-04 17:03         ` Troels Walsted Hansen
2004-01-04 17:35           ` Dave Jones
2004-01-04 21:51         ` Vojtech Pavlik
2004-03-29 15:42         ` Rob Love
2004-01-04 20:34       ` Valdis.Kletnieks
2004-01-04 21:55         ` Vojtech Pavlik
2004-01-04 23:37           ` Valdis.Kletnieks
2004-03-29 15:42       ` Dave Jones
2004-03-29 15:42     ` Rob Love
2004-03-29 15:42   ` Dave Jones
2004-03-29 15:42 ` Tomas Szepe
2004-03-29 15:42 ` Rob Love
2004-01-04  2:28 Tomas Szepe

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.