Problematische SSD im Bauvorschlag fĂŒhrt zu Bugfix im Linux-Kernel
Bei aktuellen "optimalen PCs" hat cât eine Macke der SSD ĂŒbersehen. Dank einer eigens in den Kernel eingebrachten Code-Ănderung verschwindet das Problem jetzt.
Wir bitten um Verzeihung: Bei vielen der jĂŒngsten PC-BauvorschlĂ€ge von cât haben wir eine Macke der Kingston-SSD ĂŒbersehen, derentwegen Linux manchmal abstĂŒtzt. Der Hersteller wusste davon offenbar schon monatelang, hat aber nichts unternommen. Wir konnten einige Nutzer innerhalb eines halben Monats mit einem automatisch genutzten Workaround versorgen. Durch ihn steigt allerdings die Leistungsaufnahme auch bei Systemen, die nicht betroffen sind. Da ist jetzt Kingston gefragt. Doch der Reihe nach.
SSD stolpert
In vielen BauvorschlĂ€gen der Artikelserien zum optimalen PC 2020 und 2021 hat cât eine SSD vom Typ Kingston A2000 NVMe PCIe eingesetzt. Sie hatte bei den ausgiebigen Tests, die solchen Texten vorausgehen, nie Probleme gezeigt â weder unter Windows noch bei den vielen Versuchen fĂŒr die beiden Artikel, in denen wir die Linux-Tauglichkeit der verschiedenen [2] BauvorschlĂ€ge [3] beleuchteten.
Nach dem zweiten Text informierte ein Leser cât ĂŒber StabilitĂ€tsprobleme mit der SSD: Die Installation einer Linux-Distribution klappte, aber nach ein paar Stunden stĂŒrzte das System hart ab. So hart, dass das BIOS die SSD nach BetĂ€tigen des Reset-Knopfs nicht erkannte; sie kam erst wieder in Gang, nachdem der PC fĂŒr ein paar Sekunden ausgeschaltet war.
Der Leser fand im Web mehrere Berichte von A2000-Besitzern, die mit demselben PhĂ€nomen zu kĂ€mpfen hatten. Einigen zufolge tritt das Problem erst mit der neuesten, seit FrĂŒhjahr 2020 verteilten SSD-Firmware auf. Laut einem Forenbeitrag weiĂ Kingston seit mindestens Mitte September 2020 von dem Problem. Einzelne Nutzer betonen aber, dass die SSD bei ihnen vollkommen störungsfrei lĂ€uft; allem Anschein nach zicken nur manche SSDs der Serie oder nur in bestimmten Konfigurationen.
In einigen Berichten fand sich auch gleich ein Lösungsvorschlag: Man solle die Nutzung der NVMe-SSD-Stromspartechnik "Autonomous Power State Transition" (APST) einschrĂ€nken. Manche Quellen rieten dazu, diese komplett zu deaktivieren; anderen zufolge reicht es, nur den tiefsten der APST-Modi zu meiden. Letzteres gelingt bei der A2000 ĂŒber folgenden Kernel-Parameter: nvme_core.default_ps_max_latency_us=2500
Der deutsche Kingston-Support bestÀtigte dem Leser, vom Problem zu wissen; er riet zum Deaktivieren von APST und stellte ein Firmware-Update in Aussicht.
Der Leser leitete diese Information am 25. Januar an cât weiter. Daraufhin hakte die Redaktion bei Kingston nach und begann parallel, das Problem nachzustellen. Nach zwei Tagen bestĂ€tigte der Hersteller das Ganze mit einem sehr kurzen und vagen offiziellen Statement; am Rande lieĂ man durchblicken, dass es am tiefsten APST-Modus liegt.
Abfangen
Das rief den Autor dieses Textes auf den Plan, der wusste, dass auch ein paar NVMe-SSD-Serien anderer Hersteller solche Probleme zeigen. Bei diesen vermeidet der Kernel die Nutzung des tiefsten APST-Modus automatisch: Das erhöht zwar die Leerlauf-Leistungsaufnahme minimal, doch stabile und korrekte Funktion geht fĂŒr die Linux-Entwickler vor.
Diese und andere Sonderbehandlungen aktiviert der Kernel ĂŒber eine Datenstruktur, in der neben Vendor- und Device-IDs auch die Art der Macke (der "Quirk") der SSD-Serie hinterlegt ist. Diese Datenstruktur kann man im Quellcode leicht erweitern, damit der Kernel den tiefsten APST-Level auch bei der Kingston-SSD automatisch meidet. Das gelingt innerhalb einer Minute und ohne Programmier-Know-how, denn viel mehr als Copy & Paste ist dazu nicht vonnöten.
Um das Problem generell aus der Welt zu schaffen, muss der Quirk-Eintrag aber in den offiziellen Kernel einziehen. Dieses Ziel war deutlich schwerer zu erreichen, denn dazu muss man den Linux-Entwicklern die Anpassung schmackhaft machen â dabei sollte man vor der Einreichung der Ănderung aber auch geprĂŒft haben, ob sie zum gewĂŒnschten Resultat fĂŒhrt. Das konnten wir aber nicht, da es uns nicht gelang, das Problem mit unseren SSDs zu reproduzieren.
Der Autor versorgte die Ănderung daher mit einer sehr ausfĂŒhrlichen Patch-Beschreibung, bevor er das Ganze per Mail an die fĂŒr NVMe-Code zustĂ€ndigen Entwickler schickte [4]. Nach wenigen Tagen akzeptierte einer von ihnen die Einreichung ohne weitere RĂŒckfragen. Sie floss dann ĂŒber einen anderen Entwickler zu Torvalds, der sie in die siebte Vorabversion von Linux 5.11 [5] integrierte. In der Patch-Beschreibung hatten wir zudem eine Auszeichnung hinterlegt, die zum Backport in die vier neuesten Stable- und Longterm-Kernel aufforderte. Daher hielt sie ohne weiteres Zutun nur drei Tage spĂ€ter, am 10. Februar, Einzug in die Kernel-Versionen 4.14.221, 4.19.175, 5.4.97 und 5.10.15.
Verteilung
Nutzer von Arch Linux und Fedora 32 und 33 erhielten Linux 5.10.15 innerhalb weniger Tage ĂŒber die normale Systemaktualisierung; openSUSE Tumbleweed folgte etwas spĂ€ter. Die aktuelle Version von Debian GNU/Linux sollte die Ănderung innerhalb einiger Wochen ĂŒber den neuen 4.19er-Kernel bekommen.
Ubuntu 20.04 LTS dĂŒrfte der Workaround ĂŒber den neuen 5.4er-Kernel erreichen. Ungewiss ist, ob Ubuntu 20.10 sie bekommt: Dessen Kernel basiert auf Linux 5.8, den die Kernel-Entwickler schon lange nicht mehr pflegen. ZukĂŒnftige Versionen von Ubuntu und die meisten anderen neuen Distributionsversionen werden die Sonderbehandlung ĂŒber 5.11 und neuer erhalten.
Letztlich verschwindet das Problem damit aus der Welt â auch bei Nutzern, die von sporadischen AbstĂŒrzen durch das APST-Problem betroffen waren, aber der Sache nie nachgegangen sind oder die Ursache nicht finden konnten.
Ob die Ănderung wirklich wirkt, lĂ€sst sich allerdings nach wie vor nicht gesichert sagen: Mit unmodifiziertem Kernel trat im cât-Testlabor innerhalb von drei Wochen das Problem nie wie beschrieben auf. Und das, obwohl fast rund um die Uhr getestet wurde â oftmals mit zwei PCs parallel und ab einem gewissen Zeitpunkt auch mit der betroffenen SSD, die der Leser freundlicherweise zur VerfĂŒgung stellte. Bei den Versuchen variierte cât Testumgebung und -verfahren mehrfach, ohne dass es geholfen hat.
Ein anderer Leser stimmt indes optimistisch. Bei ihm stĂŒrzte Linux durch die A2000-Macke zwar nicht an jedem Tag ab, aber an vielen â und oftmals sehr schnell. Bei einem Kernel mit dem cât-Patch trat das Problem innerhalb von neun Tagen nicht einmal auf.
Der Kernel aktiviert bei Zehntausenden von Hardware-Komponenten automatisch eine Spezialbehandlung, weil die sich nicht spezifikationsgemÀà verhalten und sonst nicht korrekt arbeiten. In einigen FĂ€llen verhindert Linux damit Datenverlust oder -verfĂ€lschung. Die meisten dieser Workarounds sorgen aber dafĂŒr, dass EingabegerĂ€te sowie Sound-Chips auf den Mainboards fĂŒr PCs und Notebooks korrekt funktionieren.
Wie bei der A2000-SSD lassen sich diese Spezialbehandlungen meist ĂŒber Kernel-Parameter aktivieren. Wann immer das nötig ist, sollten Sie die Linux-Entwickler darĂŒber informieren. Die können dann die Listen der "Quirks" im Kernel erweitern, damit er den Workaround fortan automatisch verwendet. Dadurch braucht sich dann niemand mehr Gedanken um die Macke zu machen â Sie selbst eingeschlossen!
Sie mĂŒssen nicht gleich einen fertigen Patch einreichen, wie cât es getan hat. Oft reicht eine simple, formlose Mail an die Entwickler mit ein paar Details zur Sache: der Problembeschreibung, dem helfenden Workaround sowie Namen und eindeutige Indentifikationsbezeichner der betroffenen Komponenten. Details dazu nennt ein Ă€lterer c't-Artikel [6]; eine erweiterte Form des Textes finden Sie hier:
Richtige Lösung
Zu Ende ist die Geschichte damit (hoffentlich) noch nicht, schlieĂlich ist der Patch nur ein Workaround: Er umgeht ein Problem, beseitigt aber nicht die eigentliche Ursache. Eine ordentliche Lösung sieht anders aus, denn durch den Patch steigt die Leistungsaufnahme im Leerlauf â auch bei Systemen mit Kingston-SSDs der Serie, die das APST-Problem aus welchen GrĂŒnden auch immer nicht zeigen.
Zur ordentliche Lösung ist mehr Know-how nötig, daher ist Kingston gefragt. Dass die Firma ein Firmware-Update in Aussicht stellt, spricht immerhin dafĂŒr, dass die Ursache des Problems in der A2000-SSD steckt. Da es nach jetzigem Kenntnisstand nicht unter Windows auftritt, lĂ€sst sich aber auch nicht vollstĂ€ndig ausschlieĂen, dass beim Linux-Kernel was im Argen liegt â derlei ist schon vorgekommen, doch die Indizien sprechen in diesem Fall dagegen.
Auch Linux kann allerdings nicht Hellsehen, daher wird es den tiefsten Stromsparmodus auch bei SSDs mit der neuesten Firmware meiden. Damit sich das Ă€ndert, muss der Kernel die Firmware-Version prĂŒfen. Wenn es eine neue ist, könnte er den tiefsten APST-Modus wieder freigeben; falls nicht, mĂŒsste er ihn weiter links liegen lassen und Nutzer idealerweise per Log-Ausgabe auf die Problematik und die neue Firmware hinweisen. Das erfordert einen komplexeren Patch, den Kingston selbst beisteuern sollte.
Notebooks sind ideal zum Arbeiten, Surfen oder auch fĂŒrs Gaming. Unser Ratgeber in cât 7/2021 [8] hilft Ihnen bei der Auswahl eines passenden GerĂ€ts. Wenn Sie Ihren PC lieber selbst zusammenstellen, sollten Sie unseren Test von guten, aber gĂŒnstigen CPU-KĂŒhlern lesen. c't hat aufgedeckt, dass eine groĂe SEO-Agentur unfreiwillig Firmengeheimnisse und Kunden-Zugangsdaten veröffentlichte. Wir erklĂ€ren, wie VerschlĂŒsselung heute funktioniert und geben Tipps, wie Sie gefĂ€lschte AirPods Pro reklamieren. Dies und noch viel mehr lesen Sie in Ausgabe 7/2021, die ab dem 12. MĂ€rz im Heise-Shop [9] und am gut sortierten Zeitschriftenkiosk erhĂ€ltlich ist.
(thl [10])
URL dieses Artikels:
https://www.heise.de/-5074713
Links in diesem Artikel:
[1] https://www.heise.de/ct
[2] https://www.heise.de/select/ct/2019/25/1575298659730108
[3] https://www.heise.de/select/ct/2021/3/2034508362665158588
[4] https://lore.kernel.org/linux-nvme/20210129052442.310780-1-linux@leemhuis.info/
[5] https://git.kernel.org/torvalds/c/538e4a8c571efdf131834431e0c14808bcfb1004
[6] https://www.heise.de/select/ct/2017/9/1493040705466752
[7] https://www.heise.de/ct/artikel/Kompatibilitaetsprobleme-beseitigen-und-Linux-besser-machen-4466282.html
[8] https://www.heise.de/select/ct/2021/7
[9] https://shop.heise.de/ct-07-2021/PDF
[10] mailto:thl@ct.de
Copyright © 2021 Heise Medien