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