Seit letztem November gibt es einen Kernel-Fehlerbericht eines Canonical-Ingenieurs, nachdem festgestellt wurde, dass der Intel-Thunderbolt-USB-Controller auf verschiedenen Laptops nach der Wiederaufnahme des Systems”tot”war. Dieses Problem ist jetzt mit Linux 6.4 behoben, und dieser generische Fix kann am Ende auch anderer Hardware helfen.

Dieser Kernel-Fehlerbericht wurde letzten November geöffnet, nachdem Canonical ein paar Intel Comet Lake-Laptops gefunden hatte, wo ihre Der Thunderbolt-USB-Controller funktionierte nicht mehr, nachdem das System unter Linux wieder aufgenommen wurde. Es war schwierig zu debuggen, bis Intels Mika Westerberg, der die Thunderbolt-Arbeit des Linux-Kernels leitet, betroffene Hardware in die Finger bekommen konnte, zu der zumindest verschiedene Dell-Laptops gehören. Letztendlich wurde festgestellt, dass es Intel Titan Ridge xHCI-Controller betrifft, und die Lösung besteht darin, den Kernel länger auf das Gerät warten zu lassen, wenn das System fortgesetzt wird.

Mit Linux 6.4 erlaubt der PCI-Power-Management-Code des Kernels jetzt länger zu warten, bis PCIe-Geräte bereit sind, nachdem das System wieder aufgenommen wurde, und folgt einem ähnlichen Ansatz, der bereits vom Linux-Kernel beim Zurücksetzen von PCIe-Geräten verfolgt wird. Westerberg erklärt in dem einzeiligen Patch zum allgemeinen PCI-Treibercode:

“Die PCIe-Spezifikation schreibt vor, dass ein Gerät bis zu 1 Sekunde brauchen kann, um sich nach dem Zurücksetzen zu erholen, und dieselbe Verzögerung ist vorgeschrieben, wenn es aus D3cold herauskommt (so Das Gerät kann diese 1-Sekunden-Verzögerung durch den Abschluss des Request Retry Status verlängern, und wir berücksichtigen dies in Linux mit einer Obergrenze von 60 Sekunden, nur im Reset-Code-Pfad, nicht im Resume-Code-Pfad.

Ein Gerät hat dies jedoch aufgetaucht, nämlich Intel Titan Ridge xHCI, das auch im Resume-Code-Pfad eine längere Verzögerung erfordert. Stellen Sie aus diesem Grund sicher, dass der Resume-Code-Pfad dieselbe verlängerte Verzögerung verwendet wie der Reset-Pfad.”

Da es sich um eine Korrektur des allgemeinen Treibercodes handelt und nicht spezifisch für Intel Titan Ridge xHCI, es ist möglich, dass es auch bei anderer skurriler Hardware hilft.

Der Einzeiler, der PCIe-Geräten zusätzliche Zeit gibt, um bei der Wiederaufnahme einsatzbereit zu sein, wurde letzte Woche als Teil der PCI-Änderungen für Linux 6.4. Dieser PCI-Pull hat auch eine ASPM-Problemumgehung für Chromebooks, den PCIe-Controller von Qualcomm, der standardmäßig asynchrones Testen ermöglicht, um die Startzeiten zu verkürzen, und verschiedene andere Hardwareänderungen.

Categories: IT Info