在Linuxx86_64內核中,針對特定微體系結構的優化非常普遍,英特爾和AMDCPU系列都采用各種性能技巧,而ARM64Linux內核維護者卻反對引入新的特定微體系結構優化,因為這會影響到新的ARM處理器。
Ampere Computing 發送一組 4 個補丁,為其新的 AmpereOne 服務器處理器提供優化。Ampere Computing 發現,當使用 4K 頁面大小時,這些新的高內核數 ARM 服務器處理器可以從積極的預取中獲益。據報告,在連續讀取性能測試中,使用 HugeTLB 或 Tmpfs 的收益"高達 1.3 ~ 1.4 倍"。
測試結果顯示,在 hugetlb 或 tmpfs 中,我們可以將連續讀取性能大幅提升至 1.3x ~ 1.4x。雖然這些提升對於增強 AmpereOne Linux 性能來說令人興奮,但目前看來,這項工作不會被上傳到主線 Linux 內核中。
著名的 ARM Linux 內核開發人員 Will Deacon 就 AmpereOne CPU 的性能增強補丁發表自己的看法:
"我們傾向於回避 arm64 內核中針對微體系結構的優化,因為這些優化非常難以維護,難以正確測試,通常會導致臃腫,並為更新我們的庫例程增加額外的障礙。
誠然,我們在 copy_page()(偽裝成 ARM64_HAS_NO_HW_PREFETCH)中為 Thunder-X1 提供一些幫助,但坦率地說,那臺機器需要一切可以得到的幫助。
因此,我真的不希望合並;現代 CPU 在復制數據方面應該做得更好。這是 copy_to_user(),不是火箭科學。"
ARM 的馬克-拉特蘭(Mark Rutland)也同意Deacon的說法,並贊同取消 Thunder-X1 的針對性優化。內核開發人員 Marc Zyngier 也表示同意,並已在開發一個補丁,以刪除 Thunder-X1 的特定代碼。
為保持代碼的可維護性,避免 ARM64 Linux 內核代碼過於復雜,他們不再追求 CPU/微體系結構的特定優化。未來是否會有任何專註於 ARM Linux 的發行版自身攜帶此類補丁,或者任何經過 AmpereOne 優化的 Linux 發行版繼續向前發展值得關註。特別是考慮到 Ampere 專註於高性能和高能效的 ARM Linux 服務器很可能不希望留下任何優化的痕跡,尤其是考慮到他們的目標是與 AMD EPYC 和 Intel Xeon 服務器競爭。