What are the differences between the Linux kernel compiled for generic x86 / 64 vs Xeon or others?

In the Linux kernel configuration, it is possible to change the CPU family, most of the precompiled kernels generic x86/64.

I have a Xeon E3 processor, so I was wondering what would happen if I found there Core duo/Newer Xeon.

What exactly are the differences here? Does it make sense to compile the kernel for my processor family instead of the general one? Does the kernel optimized for Xeon even run on processors other than Xeon? Has anyone ever measured some differences in performance, etc.?

+4
source share
1 answer

He will select the appropriate configuration option (from arch / x86 / Kconfig.cpu):

config MCORE2
     bool "Core 2/newer Xeon"

, CONFIG_MCORE2 -mtune=core2 32- -march=core2 ( Makefiles arch/x86/Makefile arch/x86/Makefile_32.cpu).

GCC:

-march=cpu-type

cpu. -mtune = cpu-type, cpu, -march = cpu-type GCC , , .

-march = cpu-type -mtune = cpu-type.

core2

Intel Core 2 64- , MMX, SSE, SSE2, SSE3 SSSE3.

, :

  • . , . .
  • , SIMD-, ( , , ). . .
  • , , , , , . 2% , 10% , 0,2% .
+4

All Articles