# Intel Atom N270 - how best to configure kernel CPU

## stardotstar

I see that my intel Atom N270

http://www.intel.com/products/processor/atom/index.htm

shows two cpu/cores in cpuinfo

```

eddy proc # cat cpuinfo 

processor   : 0

vendor_id   : GenuineIntel

cpu family   : 6

model      : 28

model name   : Intel(R) Atom(TM) CPU N270   @ 1.60GHz

stepping   : 2

cpu MHz      : 1600.000

cache size   : 512 KB

physical id   : 0

siblings   : 2

core id      : 0

cpu cores   : 1

fdiv_bug   : no

hlt_bug      : no

f00f_bug   : no

coma_bug   : no

fpu      : yes

fpu_exception   : yes

cpuid level   : 10

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 xtpr lahf_lm

bogomips   : 3204.20

clflush size   : 64

processor   : 1

vendor_id   : GenuineIntel

cpu family   : 6

model      : 28

model name   : Intel(R) Atom(TM) CPU N270   @ 1.60GHz

stepping   : 2

cpu MHz      : 1600.000

cache size   : 512 KB

physical id   : 0

siblings   : 2

core id      : 0

cpu cores   : 1

fdiv_bug   : no

hlt_bug      : no

f00f_bug   : no

coma_bug   : no

fpu      : yes

fpu_exception   : yes

cpuid level   : 10

wp      : yes

flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni monitor ds_cpl est tm2 ssse3 xtpr lahf_lm

bogomips   : 3199.55

clflush size   : 64

```

I read that this is not really a core duo setup but the hyperthreading but I am far from experienced in these things.

So far I have followed what sense I could get from all the documentation and have this for my make.conf

```
eddy proc # cat /etc/make.conf

# These settings were set by the catalyst build script that automatically

# built this stage.

# Please consult /etc/make.conf.example for a more detailed example.

CFLAGS="-O2 -march=prescott -pipe -fomit-frame-pointer"

CXXFLAGS="$CFLAGS"

# WARNING: Changing your CHOST is not something that should be done lightly.

# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.

CHOST="i686-pc-linux-gnu"

MAKEOPTS="-j2"

USE="vim-syntax vim wifi audacious mp3 wma vorbis xcomposite ftp cdrw cddb jpeg gif win32codecs java cpufreq acpi xscreensaver dbus hal alsa gpm X cups mysql ipv4 -ipv6"

```

and all seems well but I want to know what kernel cpu features I should have set for best performance - before I start clocking it and so on././

```

#

# Processor type and features

#

CONFIG_TICK_ONESHOT=y

CONFIG_NO_HZ=y

CONFIG_HIGH_RES_TIMERS=y

CONFIG_GENERIC_CLOCKEVENTS_BUILD=y

CONFIG_SMP=y

# CONFIG_X86_PC is not set

# CONFIG_X86_ELAN is not set

# CONFIG_X86_VOYAGER is not set

# CONFIG_X86_NUMAQ is not set

# CONFIG_X86_SUMMIT is not set

# CONFIG_X86_BIGSMP is not set

# CONFIG_X86_VISWS is not set

CONFIG_X86_GENERICARCH=y

# CONFIG_X86_ES7000 is not set

# CONFIG_X86_RDC321X is not set

# CONFIG_X86_VSMP is not set

CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y

# CONFIG_PARAVIRT_GUEST is not set

CONFIG_X86_CYCLONE_TIMER=y

# CONFIG_M386 is not set

# CONFIG_M486 is not set

# CONFIG_M586 is not set

# CONFIG_M586TSC is not set

# CONFIG_M586MMX is not set

# CONFIG_M686 is not set

# CONFIG_MPENTIUMII is not set

CONFIG_MPENTIUMIII=y

# CONFIG_MPENTIUMM is not set

# CONFIG_MPENTIUM4 is not set

# CONFIG_MK6 is not set

# CONFIG_MK7 is not set

# CONFIG_MK8 is not set

# CONFIG_MCRUSOE is not set

# CONFIG_MEFFICEON is not set

# CONFIG_MWINCHIPC6 is not set

# CONFIG_MWINCHIP2 is not set

# CONFIG_MWINCHIP3D is not set

# CONFIG_MGEODEGX1 is not set

# CONFIG_MGEODE_LX is not set

# CONFIG_MCYRIXIII is not set

# CONFIG_MVIAC3_2 is not set

# CONFIG_MVIAC7 is not set

# CONFIG_MPSC is not set

# CONFIG_MCORE2 is not set

# CONFIG_GENERIC_CPU is not set

CONFIG_X86_GENERIC=y

CONFIG_X86_CMPXCHG=y

CONFIG_X86_L1_CACHE_SHIFT=7

CONFIG_X86_XADD=y

CONFIG_X86_WP_WORKS_OK=y

CONFIG_X86_INVLPG=y

CONFIG_X86_BSWAP=y

CONFIG_X86_POPAD_OK=y

CONFIG_X86_GOOD_APIC=y

CONFIG_X86_INTEL_USERCOPY=y

CONFIG_X86_USE_PPRO_CHECKSUM=y

CONFIG_X86_TSC=y

CONFIG_X86_CMOV=y

CONFIG_X86_MINIMUM_CPU_FAMILY=4

CONFIG_X86_DEBUGCTLMSR=y

CONFIG_HPET_TIMER=y

CONFIG_HPET_EMULATE_RTC=y

# CONFIG_IOMMU_HELPER is not set

CONFIG_NR_CPUS=32

CONFIG_SCHED_SMT=y

CONFIG_SCHED_MC=y

# CONFIG_PREEMPT_NONE is not set

CONFIG_PREEMPT_VOLUNTARY=y

# CONFIG_PREEMPT is not set

CONFIG_X86_LOCAL_APIC=y

CONFIG_X86_IO_APIC=y

CONFIG_X86_MCE=y

CONFIG_X86_MCE_NONFATAL=y

CONFIG_X86_MCE_P4THERMAL=y

CONFIG_VM86=y

# CONFIG_TOSHIBA is not set

# CONFIG_I8K is not set

# CONFIG_X86_REBOOTFIXUPS is not set

CONFIG_MICROCODE=y

CONFIG_MICROCODE_OLD_INTERFACE=y

CONFIG_X86_MSR=y

CONFIG_X86_CPUID=y

# CONFIG_NOHIGHMEM is not set

CONFIG_HIGHMEM4G=y

# CONFIG_HIGHMEM64G is not set

CONFIG_PAGE_OFFSET=0xC0000000

CONFIG_HIGHMEM=y

CONFIG_SELECT_MEMORY_MODEL=y

CONFIG_FLATMEM_MANUAL=y

# CONFIG_DISCONTIGMEM_MANUAL is not set

# CONFIG_SPARSEMEM_MANUAL is not set

CONFIG_FLATMEM=y

CONFIG_FLAT_NODE_MEM_MAP=y

# CONFIG_SPARSEMEM_STATIC is not set

# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set

CONFIG_SPLIT_PTLOCK_CPUS=4

CONFIG_RESOURCES_64BIT=y

CONFIG_ZONE_DMA_FLAG=1

CONFIG_BOUNCE=y

CONFIG_VIRT_TO_BUS=y

# CONFIG_HIGHPTE is not set

# CONFIG_MATH_EMULATION is not set

CONFIG_MTRR=y

# CONFIG_EFI is not set

# CONFIG_IRQBALANCE is not set

CONFIG_SECCOMP=y

# CONFIG_HZ_100 is not set

# CONFIG_HZ_250 is not set

# CONFIG_HZ_300 is not set

CONFIG_HZ_1000=y

CONFIG_HZ=1000

CONFIG_SCHED_HRTICK=y

# CONFIG_KEXEC is not set

# CONFIG_CRASH_DUMP is not set

CONFIG_PHYSICAL_START=0x100000

# CONFIG_RELOCATABLE is not set

CONFIG_PHYSICAL_ALIGN=0x100000

CONFIG_HOTPLUG_CPU=y

CONFIG_COMPAT_VDSO=y

CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

```

this is:

```

eddy proc # uname -a

Linux eddy 2.6.25-gentoo-r8-eddy-alpha #3 SMP Fri Nov 7 16:56:55 EST 2008 i686 Intel(R) Atom(TM) CPU N270 @ 1.60GHz GenuineIntel GNU/Linux

```

Looking forward to your thoughts Gen2ers.

\\'

----------

## nurachi

You can add these flags to your USE:

```
 mmx sse sse2 sse3
```

----------

## stardotstar

Thank you!

----------

## darkstarbyte

 *stardotstar wrote:*   

> I see that my intel Atom N270
> 
> ```
> 
> CONFIG_MPENTIUMIII=y
> ...

 

If you want the most from that kernel of your architecture wise use.

```

CONFIG_MPENTIUM4=y

```

If the Intel Atom N270 really is presscott like you said above then the CONFIG_MPENTIUM4=y should be set.

----------

## Gusar

The kernel has an option specifically for Atom (CONFIG_MATOM=y), why not use that?

For CFLAGS, simply use -march=native

----------

## ffwd

regarding use flags u can add "ssse3" as well

as for kernel cpu selection, with gcc-4.5 you can select "atom", gcc-4.4 go for "core2" and select "generic x86 optimizations"

----------

