Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Kernel & Hardware
  • Search

which processor family should I select?

Kernel not recognizing your hardware? Problems with power management or PCMCIA? What hardware is compatible with Gentoo? See here. (Only for kernels supported by Gentoo.)
Post Reply
Advanced search
12 posts • Page 1 of 1
Author
Message
queen
Veteran
Veteran
User avatar
Posts: 1642
Joined: Tue Jul 19, 2005 10:34 am

which processor family should I select?

  • Quote

Post by queen » Wed Oct 10, 2012 10:13 am

I am installing now a new system with cpu ivy bridge Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz

I am not sure which processor family should I select in the kernel. Core 2/newer Xeon or generic x86_64.

More details about the cpu:

Code: Select all

processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz
stepping        : 9
microcode       : 0x12
cpu MHz         : 2294.894
cache size      : 6144 KB
physical id     : 0
siblings        : 8
core id         : 3
cpu cores       : 4
apicid          : 7
initial apicid  : 7
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips        : 4589.78
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
Top
Catanduva
Tux's lil' helper
Tux's lil' helper
User avatar
Posts: 77
Joined: Thu Dec 25, 2008 5:36 pm
Location: Brazil

  • Quote

Post by Catanduva » Wed Oct 10, 2012 4:14 pm

I'm getting an i5 ivy bridge tomorrow. Same question here.
Top
kimmie
Guru
Guru
User avatar
Posts: 531
Joined: Wed Sep 08, 2004 8:12 am
Location: Australia

  • Quote

Post by kimmie » Wed Oct 10, 2012 4:30 pm

You want core2 / newer Xeon
Top
duderonomy
Guru
Guru
Posts: 349
Joined: Sat Mar 20, 2004 7:51 pm
Location: SF Bay Area

  • Quote

Post by duderonomy » Wed Oct 10, 2012 11:06 pm

kimmie wrote:You want core2 / newer Xeon
Really?
I have tried both "Generic-x86-64" and "Core 2/newer Xeon".
Apparently, either one works...
Where can I look the details why "Core 2/newer Xeon" is best?
I have not googled this yet.

Thx
:D
Top
queen
Veteran
Veteran
User avatar
Posts: 1642
Joined: Tue Jul 19, 2005 10:34 am

  • Quote

Post by queen » Thu Oct 11, 2012 8:26 am

kimmie wrote:You want core2 / newer Xeon
Yes, that's what I ended up selecting. I looked also in the help of the selection and it seemed better, but I don't have a more based reason. If you have a good reason, I will be glad to know.

I also checked safe cflags which gave some hints too.
http://en.gentoo-wiki.com/wiki/Safe_Cfl ... _Dual-Core
http://en.gentoo-wiki.com/wiki/Safe_Cfl ... _Xeon_55xx

Too bad they didn't update the site for Ivy bridge. model 58 doesn't appear there yet.
Top
kimmie
Guru
Guru
User avatar
Posts: 531
Joined: Wed Sep 08, 2004 8:12 am
Location: Australia

  • Quote

Post by kimmie » Thu Oct 11, 2012 12:30 pm

Basically, if you are building a 64 bit kernel, CONFIG_MCORE2 will build the kernel with gcc options -m64 -march=core2, whereas CONFIG_GENERIC_CPU will build it with -m64 -mtune=generic.

CORE2 is definitely the right one to use, as more recent i7/i5 support the core2 instructions, which are a superset of the basic amd64 instructions. Latter versions of gcc have -march=core7 available too, I think, I'm not sure if that's yet used by any kernel version.

It's hard to find this info by googling, I just looked in the kernel source for MCORE2 and also built the kernel using make V=1 to see exactly how the gcc options changed. If you set CONFIG_GENERIC_CPU, there are a few other undocumented kernel options set too, you'd have to look in the source to see what these actually do. Probably some sort of runtime detection and optimisation.

EDIT: Probably for your Ivy Bridge i7 you'll find that Processor family is 6 in /proc/cpuinfo, as described in the make menuconfig help for CONFIG_MCORE2. It certainly is for my first generation i7.
Top
queen
Veteran
Veteran
User avatar
Posts: 1642
Joined: Tue Jul 19, 2005 10:34 am

  • Quote

Post by queen » Thu Oct 11, 2012 2:07 pm

kimmie wrote:Basically, if you are building a 64 bit kernel, CONFIG_MCORE2 will build the kernel with gcc options -m64 -march=core2, whereas CONFIG_GENERIC_CPU will build it with -m64 -mtune=generic.

CORE2 is definitely the right one to use, as more recent i7/i5 support the core2 instructions, which are a superset of the basic amd64 instructions. Latter versions of gcc have -march=core7 available too, I think, I'm not sure if that's yet used by any kernel version.

It's hard to find this info by googling, I just looked in the kernel source for MCORE2 and also built the kernel using make V=1 to see exactly how the gcc options changed. If you set CONFIG_GENERIC_CPU, there are a few other undocumented kernel options set too, you'd have to look in the source to see what these actually do. Probably some sort of runtime detection and optimisation.

EDIT: Probably for your Ivy Bridge i7 you'll find that Processor family is 6 in /proc/cpuinfo, as described in the make menuconfig help for CONFIG_MCORE2. It certainly is for my first generation i7.
Yes, I assumed that generic is for all kinds of 64bit (for multi platforms). As far I saw in the kernel, there isn't -march=i7. Indeed the family is 6.See the first post of proc/cpuinfo

However, there might be some discrepancy since in the CFLAGS I selected -march=native for Ivy Bridge as suggested in other threads. I am not sure how it will behave. Ivy bridge will be supported in higher gcc versions (4.6 and higher), but so far it's full of bugs.

You have an idea how to check and see which flags actually take in place?
Top
kimmie
Guru
Guru
User avatar
Posts: 531
Joined: Wed Sep 08, 2004 8:12 am
Location: Australia

  • Quote

Post by kimmie » Thu Oct 11, 2012 2:11 pm

The CFLAGS you use in make.conf are not used when building the kernel.

The kernel config controls the gcc options for the kernel build. If you want to see the actual gcc commands used when then kernel is built, use 'make V=1'.

I don't know what you mean by a "discrepancy". It won't matter at all if you build a kernel using generic options, and use CFLAGS="-march=native" when you build your system.
Top
khayyam
Watchman
Watchman
User avatar
Posts: 6227
Joined: Thu Jun 07, 2012 2:45 am
Location: Room 101

  • Quote

Post by khayyam » Thu Oct 11, 2012 4:53 pm

queen wrote:You have an idea how to check and see which flags actually take in place?
queen ... you can get the flags that -march=native (or similarly with '-m64 -march=core2') will enable with the following

Code: Select all

gcc '-###' -e -v -march=native /usr/include/stdlib.h
best ... khay
Top
duderonomy
Guru
Guru
Posts: 349
Joined: Sat Mar 20, 2004 7:51 pm
Location: SF Bay Area

  • Quote

Post by duderonomy » Fri Oct 12, 2012 7:33 am

khayyam wrote:

Code: Select all

gcc '-###' -e -v -march=native /usr/include/stdlib.h
Thanks for the great tip!
Top
queen
Veteran
Veteran
User avatar
Posts: 1642
Joined: Tue Jul 19, 2005 10:34 am

  • Quote

Post by queen » Fri Oct 12, 2012 5:42 pm

khayyam wrote:
queen wrote:You have an idea how to check and see which flags actually take in place?
queen ... you can get the flags that -march=native (or similarly with '-m64 -march=core2') will enable with the following

Code: Select all

gcc '-###' -e -v -march=native /usr/include/stdlib.h
best ... khay
Cool. Thanks a lot.
Top
queen
Veteran
Veteran
User avatar
Posts: 1642
Joined: Tue Jul 19, 2005 10:34 am

  • Quote

Post by queen » Fri Oct 12, 2012 5:43 pm

kimmie wrote:The CFLAGS you use in make.conf are not used when building the kernel.

That explains everything. Thanks.
Top
Post Reply

12 posts • Page 1 of 1

Return to “Kernel & Hardware”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic