# Intel® Core Duo Processor T2400 Dual Core: MAKEOPTS

## janskey

hi guys..

i need help..i have a Pentium D T2400 Dual Core..what is the variable of my MAKEOPTS should be for best performance?

----------

## loki99

Take a look at Safe Cflags.   :Wink: 

----------

## Mickael

Yan can try with -j5.

----------

## janskey

Sory Guys,

what i mean my processor is  Intel® Core Duo Processor T2400. i look at the page for Safe Cflags, and i see this:

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=pentium-m -O2 -pipe -msse3 -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

..any idea for MAKEOPTS for this?

----------

## loki99

 *handbook wrote:*   

> MAKEOPTS
> 
> With MAKEOPTS you define how many parallel compilations should occur when you install a package. A good choice is the number of CPUs in your system plus one, but this guideline isn't always perfect.

 

Since you have two cores, the rule of thumb would be using "-j3". 

But you could also try MickTux's suggestion and compare the results you get, to find out which one works best for you.

----------

## janskey

thanks a lot guys...i'll try this things up..i'll update you on whats the result on this

----------

## rhill

the T2400 has two cores and no hyperthreading, so you want -j3.  works best for me on a T2300.

also use -march=prescott.

----------

## Mickael

 *dirtyepic wrote:*   

> the T2400 has two cores and no hyperthreading, so you want -j3.  works best for me on a T2300.
> 
> also use -march=prescott.

 

In this case, -j3 is better. Thanks for this information.

----------

## janskey

hi dirtyepic

 *Quote:*   

> -march=prescott

 

is Prescott for Intel® Core Duo processors T2400? it thought -march=pentim-m. this is what the wiki says: http://gentoo-wiki.com/Safe_Cflags#Intel_Core_Duo_.28Yonah.29

are there difference when i'll just use the -march=i686?

thansk for advice..

----------

## rhill

ouch, no that's wrong.  i'll change it in a bit.

internally, GCC uses -march values to set a few different things.  you can see this in gcc/config/i386/i386.c if you'd like.

for pentium-m:

```
{"pentium-m", PROCESSOR_PENTIUMPRO, PTA_MMX | PTA_SSE | PTA_PREFETCH_SSE | PTA_SSE2},
```

for prescott:

```
{"prescott", PROCESSOR_NOCONA, PTA_SSE | PTA_SSE2 | PTA_SSE3

                  | PTA_MMX | PTA_PREFETCH_SSE},
```

this might seem a little weird, but a prescott chip is basically a nocona with the 64bit support disabled.

anyways the important part is PROCESSOR_xxx.  _this_ is what the compiler looks at when it determines what registers are available, which operations will "cost" less to do,  which optimizations to do based on that, destination alignments, branch predictions, and basically what the processor can and can't do.  SSE/MMX instructions are great, but only a small part of what makes up the total architecture of the chip. -march=pentium-m -msse3 != -march=prescott

Basic rule of thumb.

# cat /proc/cpuinfo | grep flags

if you see "pni", use -march=prescott.  if you see "pni" and "lm", use -march=nocona.  if you don't see either, well then you're on your own because i don't have any idea what the differences between pentium3, pentium4, and pentium-m are.   :Wink: 

----------

## janskey

dirtyepic,

i have a question..does this PRESCOTT improve the performance of my computer? are there any defference in both prescott and i686? i'm affraid if i use PRESCOTT, it might cause problem on my system or break the OS..

btw, i see pni in my /proc/cpuinfo..maybe i'll use PRESCOTT.

thank a lot for this..

----------

