新補(bǔ)丁允許在 x86-64 微架構(gòu)功能級(jí)別上創(chuàng)建 Linux Kernel
本周發(fā)布的一組補(bǔ)丁集中,通過(guò)添加對(duì)最新 LLVM Clang 和 GCC 編譯器的支持,允許能夠在不同的 x86-64 微架構(gòu)功能級(jí)別上輕松創(chuàng)建 Linux Kernel。在過(guò)去 1 年時(shí)間里,“x86-64 微架構(gòu)功能級(jí)別”已經(jīng)被 AMD 和 Intel 的處理器采納為常規(guī)級(jí)別,而不僅僅是由代碼編譯器針對(duì)每個(gè) CPU/核心系列進(jìn)行編譯。
x86-64 微架構(gòu)功能級(jí)別對(duì)于像 Glibc 的 HWCAPS 是非常有用的,也逐步淘汰諸多 Linux 發(fā)行版本和其他軟件中對(duì)舊 X86-64 的支持。
在標(biāo)準(zhǔn)的 x86-64 上,x86-64-v2 規(guī)范大致相當(dāng)于英特爾 Nehalem 和更新的 SSE3/SSE4.1/SSE4.2/SSSE3,x86-64-v3 相當(dāng)于 Haswell 時(shí)代的 CPU 和更新的授權(quán) AVX/AVX2/BMI2/FMA(和其他擴(kuò)展),然后 x86-64-v4 作為 AVX-512 處理器的最新功能級(jí)別。
本周的補(bǔ)丁將增加 Kconfig 選項(xiàng),用于構(gòu)建 Linux 內(nèi)核,如果希望通過(guò)只滿足較新的處理器來(lái)獲得更優(yōu)化的內(nèi)核,可以選擇針對(duì)不同的x86-64微架構(gòu)功能級(jí)別。支持x86-64微架構(gòu)特性級(jí)別的編譯器是GCC 11和更新的版本,或者 LLVM Clang 12.0和更新的版本。
圍繞 x86-64 功能級(jí)別添加 Kconfig 構(gòu)建支持的相當(dāng)基本的補(bǔ)丁集目前在內(nèi)核郵件列表中,但希望能很快進(jìn)入主線樹。在實(shí)踐中對(duì)其進(jìn)行基準(zhǔn)測(cè)試將會(huì)很有趣,看看這些特性等級(jí)對(duì)現(xiàn)代英特爾/AMD CPU的Linux內(nèi)核有多大影響。