![](/img/trans.png)
[英]How can the cpu type be read in the linux kernel code (viz. x86, x86_64)?
[英]What are differences between linux kernel compiled for generic x86/64 vs Xeon or others
在linux內核配置中,可以選擇更改CPU系列,大多數預編譯內核都是generic x86/64
。
我有一個Xeon E3 CPU,所以我想知道如果我選擇Core duo/Newer Xeon
會發生什么。
這有什么區別? 為我的CPU系列編譯內核是否有任何意義,而不是通用的? 為Xeon優化的內核是否可以在非Xeon CPU上運行? 有人曾測量過一些性能上的差異嗎?
它將選擇相應的配置選項(來自arch / x86 / Kconfig.cpu):
config MCORE2
bool "Core 2/newer Xeon"
一般來說, CONFIG_MCORE2
將在32位構建上啟用編譯器選項-mtune=core2
,並且-march=core2
(可以在Makefiles arch/x86/Makefile
和arch/x86/Makefile_32.cpu
)。
GCC手冊頁中描述了這些選項:
-march=cpu-type
生成機器類型cpu-type的指令。 與-mtune = cpu-type(僅僅調整指定cpu類型的生成代碼)相比,-march = cpu-type允許GCC生成可能不會在指定的處理器之外的處理器上運行的代碼。
指定-march = cpu-type意味着-mtune = cpu-type。
酷睿2
Intel Core 2 CPU具有64位擴展,支持MMX,SSE,SSE2,SSE3和SSSE3指令集。
談到該編譯選項對應用程序性能的總體影響,它應該相對較低:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.