自 Linux 6.1 內核以來,許多用戶在使用現代 AMD Ryzen 系統時報告了系統卡頓問題。這類似於 AMD 去年針對 Windows 10 和 Windows 11 披露的“間歇性系統卡頓”問題,而現在對於今天的 Linux 6.3-rc2,最終合併了一個解決方法,該解決方法也將反向移植到穩定的內核系列.
去年 Windows 和現在 6.1+ 內核的 Linux 上的系統卡頓歸因於 SPI 閃存中與 fTPM 相關的內存事務,這可能導致系統交互或響應暫時暫停。在對 Linux 內核變通方案進行了一個多月的反复討論之後,今天晚上,就在即將發布的 Linux 6.3-rc2 標記之前,合併了一個變通方案。
AMD Linux 工程師 Mario Limonciello 看到他的變通辦法被合併,以在選定的 AMD 設計上禁用 fTPM 的硬件隨機數生成器。 Mario 在補丁中描述:
“AMD 發布了一個公告,指出在 BIOS 中啟用 fTPM 會導致操作系統出現“卡頓”。這個問題已在較新版本的 fTPM 固件中得到修復,但它已經出現系統設計人員決定是否分發它。
這個問題已經存在了一段時間,但從內核 6.1 開始更為普遍,因為提交 b006c439d58db(“hwrng:核心-啟動 hwrng kthread 也適用於不受信任的來源”)開始使用默認情況下 hwrng 的 fTPM。但是,所有/dev/hwrng 的使用都會導致不可接受的卡頓。
因此,在檢測到這些有問題的 fTPM 版本時,只需禁用有缺陷的 hwrng 的註冊即可。由於這是由有問題的固件引起的,因此其他 TPM 也可能重現此類問題是合理的交互,但這還沒有被任何用戶的測試或報告顯示。
假設是觸發使用 RNG 會更頻繁地生成,因為用戶空間軟件會定期獲取隨機數。
有意繼續註冊其他 TPM 功能,以便依賴 PCR 測量或任何數據存儲的用戶仍然可以訪問它。如果稍後發現另一個 TPM 功能加劇了這個問題,可以完全關閉它的模塊參數,並可以引入一個模塊參數,以允許依賴 fTPM 功能的用戶打開它,即使存在這個問題。”
花了一個月的時間才弄清楚受影響的 fTPM 版本等的確切行為。但長話短說,如果您的 AMD Ryzen 系統有可用的系統固件更新,請升級到理想情況解決根本問題,從而避免此變通辦法將 fTPM 的硬件隨機數生成列入黑名單。
期待此變通辦法在未來幾天出現在 Linux 6.2 穩定版和 Linux 6.1 LTS 中。