新補丁允許在x86-64 微架構功能級別上創建Linux Kernel
本周發佈的一組補丁集中,通過添加對最新 LLVM Clang 和 GCC 編譯器的支援,允許能夠在不同的 x86-64 微架構功能級別上輕鬆建立Linux Kernel。 在過去 1 年時間里,「x86-64 微架構功能級別」已經被 AMD 和 Intel 的處理器採納為常規級別,而不僅僅是由代碼編譯器針對每個 CPU/核心系列進行編譯。
x86-64 微架構功能級別對於像 Glibc 的 HWCAPS 是非常有用的,也逐步淘汰諸多 Linux 發行版本和其他軟體中對舊 X86-64 的支援。
在標準的 x86-64 上,x86-64-v2 規範大致相當於英特爾Nehalem 和更新的 SSE3/SSE4.1/SSE4.2/SSSE3,x86-64-v3 相當於 Haswell 時代的 CPU 和更新的授權 AVX/AVX2/BMI2/FMA(和其他擴展),然後 x86-64-v4 作為 AVX-512 處理器的最新功能級別。
本周的補丁將增加 Kconfig 選項,用於構建 Linux 內核,如果希望通過只滿足較新的處理器來獲得更優化的內核,可以選擇針對不同的x86-64微架構功能級別。 支援x86-64微架構特性級別的編譯器是GCC 11和更新的版本,或者 LLVM Clang 12.0和更新的版本。
圍繞 x86-64 功能級別添加 Kconfig 構建支持的相當基本的補丁集目前在內核郵件清單中,但希望能很快進入主線樹。 在實踐中對其進行基準測試將會很有趣,看看這些特性等級對現代英特爾/AMD CPU的Linux內核有多大影響。