自去年 11 月以來,Canonical 工程師發現各種筆記本電腦上的 Intel Thunderbolt USB 控制器在恢復系統後“死機”後,就出現了內核錯誤報告。這個問題現在在 Linux 6.4 中得到了解決,這個通用修復程序最終可能也會幫助其他硬件。
此內核錯誤報告是在 Canonical 發現一些 Intel Comet Lake 筆記本電腦的問題後於去年 11 月公開的在 Linux 上恢復系統後,Thunderbolt USB 控制器不再運行。在領導 Linux 內核 Thunderbolt 工作的英特爾的 Mika Westerberg 能夠接觸到受影響的硬件之前,很難進行調試,其中至少包括各種戴爾筆記本電腦。最終發現它影響了 Intel Titan Ridge xHCI 控制器,解決方案是讓內核在恢復系統時等待設備的時間更長。
在 Linux 6.4 中,內核的 PCI 電源管理代碼現在允許在恢復系統後等待更長的時間等待 PCIe 設備準備就緒,這遵循了 Linux 內核在 PCIe 設備重置期間已經採用的類似方法。 Westerberg 在單行 補丁 到通用 PCI 驅動程序代碼:
“PCIe 規範規定設備可能需要長達 1 秒的時間才能從重置中恢復,並且在從 D3cold 中出來時也規定了相同的延遲(因為也涉及重置)。設備可能會通過請求重試狀態完成來延長這 1 秒的延遲,我們在 Linux 中提供了 60 秒的上限,僅在重置代碼路徑中,而不是在恢復代碼路徑中。
但是,設備有浮出水面,即 Intel Titan Ridge xHCI,它在恢復代碼路徑中也需要更長的延遲。因此,使恢復代碼路徑使用與重置路徑相同的延長延遲。”
因為它是對通用驅動程序代碼的修復,而不是特定於英特爾Titan Ridge xHCI,它也有可能幫助解決其他一些古怪的硬件。
作為 Linux 6.4 的 PCI 更改。 PCI pull 還有一個針對 Chromebook 的 ASPM 解決方法,高通的 PCIe 控制器默認啟用異步探測以減少啟動時間,以及各種其他硬件更改。