
出處:IT之家

一名英偉達工程師近日在 Linux 核心中提交了一個修復補丁,解決了 AMD 整合和獨立 GPU 硬體上出現的效能倒退問題。然而令人意外的是,這位工程師正是最初引入這一問題的“始作俑者”。
據 Phoronix 報道,這位英偉達工程師上週對 Linux 核心進行了修改,試圖將 PCI 基地址暫存器(BAR)空間擴充套件至超過 10TiB。然而,這一旨在提升擁有大記憶體空間的系統性能的改動,卻意外地將 AMD 的 GPU 錯誤地標記為“受限”,從而嚴重影響了其效能表現。所幸的是,這一問題很快被社群發現並得到修復。
據悉,此次效能衰退的根本原因是上週提交的一個旨在擴充套件 PCI BAR 空間的 commit。該 commit 在提升大記憶體系統潛力的同時,也間接降低了消費級 x86 裝置上的核心地址空間佈局隨機化(KASLR)熵值。KASLR 是一項重要的安全特性,它透過在每次啟動時隨機化核心資料載入到記憶體中的位置來增強系統安全性。與此同時,該 commit 還人為地擴大了核心可訪問的物理記憶體範圍(direct_map_physmem_end),通常會擴充套件至 64TiB。
在 Linux 系統中,記憶體被劃分為不同的區域(zone),其中一種是裝置區域(zone device),可以與 GPU 相關聯。此次問題的關鍵在於,當核心為 Radeon GPU 初始化裝置區域記憶體時,一個名為“max_pfn”的關聯變數(代表核心可定址的總 RAM)被人為地增加到了 64TiB。
由於 GPU 很可能無法訪問整個 64TiB 的地址範圍,這導致系統錯誤地將“dma_addressing_limited ()”標記為 True。該變數實際上限制了 GPU 只能使用 DMA32 區域,該區域僅提供 4GB 的記憶體,這就解釋了效能大幅下降的原因。
幸運的是,這一問題很快被發現並得到了修復。英偉達工程師迅速提交了修復補丁,解決了這一效能倒退問題。根據 Linux 核心的開發流程,該修復補丁預計將在 Linux 6.15-rc1 合併視窗關閉前(即今日)被合併。
這一事件也體現了開源社群的協作精神。儘管 AMD 和 Nvidia 在 GPU 市場上是競爭對手,但在開源領域,他們共同遵循“誰破壞,誰修復”的原則。據瞭解,Linux 核心作為開源專案,接受來自全球開發者的貢獻,並透過嚴格的程式碼審查機制確保程式碼質量。這種合作模式不僅推動了技術的進步,也促進了不同技術陣營之間的交流與合作。
隨著修復補丁的合併,預計 Linux 6.15 穩定版將在六到八週後釋出,大約在 5 月底或 6 月初。屆時,使用者將能夠體驗到修復後的系統性能,而 AMD 和 Nvidia 的 GPU 硬體也將更加穩定地執行在 Linux 平臺上。
網友表示:
“製造問題-解決問題-工作保住”
“高階的商戰,往往採用最樸實無華的方式。”
“是故意的還是不小心的”
“好了,這下終於知道為啥AMD不行了,原來一直是英偉達的下作手段”
“裝作不小心,等發現的時候已經換英偉達了,就像當初谷歌在ytb上面。限制競爭瀏覽器的效能一樣”
官方站點:www.linuxprobe.com
Linux命令大全:www.linuxcool.com

劉遄老師QQ:5604215
Linux技術交流群:2636170
(新群,火熱加群中……)
想要學習Linux系統的讀者可以點選"閱讀原文"按鈕來了解書籍《Linux就該這麼學》,同時也非常適合專業的運維人員閱讀,成為輔助您工作的高價值工具書!