speedycxd Posted March 14, 2022 Share Posted March 14, 2022 Hallo, mein Unraid Server Protokoll gibt mir folgenden Fehler aus. Quote Mar 14 19:25:16 unraid kernel: pcieport 0000:00:1b.4: AER: Corrected error received: 0000:02:00.0 Mar 14 19:25:16 unraid kernel: nvme 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID) Mar 14 19:25:16 unraid kernel: nvme 0000:02:00.0: device [15b7:5006] error status/mask=00000001/0000e000 Scheint also irgendwie an meiner NVME zu liegen. Ich verwende nur eine als Cache, und das ist eine WD Black 750 nvme 1TB Die zweite nutze ich als Unassigned Devices für andere Sachen. Wie kann man diesen Fehler beheben? Quote Link to comment
mgutt Posted March 20, 2022 Share Posted March 20, 2022 Manche NVMe haben Bugs und kommen mit ihren eigenen propagierten Schlafzuständen nicht 100%-tig klar. Es kommt dann zu Übertragungsfehlern, die aber durch wiederholtes Senden der Daten oder durch den mitgelieferten ECC (Error Correction Code) behoben wird. Das ist also "nur" eine Warnung. Allerdings können diese die kompletten Logs fluten und die Fehlerkorrektur kann je nach Häufigkeit auch zu spürbaren Latenzen führen. Du hast nun folgende Optionen: - BIOS aktualisieren - NVMe Firmware-Update aufspielen (muss dazu meistens in einen Windows PC und selten gibt es Updates) - die Kernel Option "nvme_core.default_ps_max_latency_us=XXX" so setzen, dass die höchsten Schlafzustände der NVMe deaktiviert werden - die Kernel Option "pcie_aspm=off" setzen, wodurch alle Energiesparfunktionen aller PCIe Verbindungen deaktiviert werden - die Kernel Option "pci=noaer" setzen, wodurch die Fehlermeldungen unterdrückt werden ASPM PS4 deaktivieren Das oben genannte "XXX" ist ein individueller Schwellwert, der je nach NVMe unterschiedlich sein kann. Welche Schlafzustände/Schwellwerte eine NVMe besitzt, kann man mit diesem Befehl herausfinden: smartctl -a /dev/nvme0 Hier zB von meiner NVMe (die Samsung EVO Plus hat diese Probleme übrigens nicht): Model Number: Samsung SSD 970 EVO Plus 2TB ... Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 7.50W - - 0 0 0 0 0 0 1 + 5.90W - - 1 1 1 1 0 0 2 + 3.60W - - 2 2 2 2 0 0 3 - 0.0700W - - 3 3 3 3 210 1200 4 - 0.0050W - - 4 4 4 4 2000 8000 Da sieht man zB, dass der höchste Schlafzustand "4", der "PS4" genannt wird, einen ENT_LAT von 2000 und einen EXT_LAT von 8000 besitzt. Im Linux Kernel steht nun folgende Erklärung (von mir übersetzt): Quote Der nächste Schlafzustand greift, sobald 50 * (ENT_LAT + EXT_LAT) Mikrosekunden erreicht werden, vorausgesetzt EXT_LAT ist kleiner ist als die maximale Latenz, die ein User mit ps_max_latency_us beeinflussen kann. Entsprechend: 50 (2000 + 8000) = 500000 Mikrosekunden = 0.5 Sekunden Der Wechsel zwischen den Schlafzuständen erfolgt also ziemlich schnell. Jedenfalls könnte ich nun bei meiner NVMe PS4 deaktivieren, in dem ich eine maximale Latenz einstelle, die größer gleich 1200 ist (EXT_LAT von PS3) und kleiner als 8000 (EXT_LAT von PS4). Also zb: nvme_core.default_ps_max_latency_us=6000 ASPM der NVMe vollständig deaktivieren Alternativ erlaubt der Linux Kernel auch das Deaktivieren von ASPM, in dem der Wert auf 0 gesetzt wird: Also entsprechend so: nvme_core.default_ps_max_latency_us=0 Weiterführende Informationen https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvme/host/core.c?h=v5.9-rc7 1 Quote Link to comment
speedycxd Posted March 20, 2022 Author Share Posted March 20, 2022 Vielen dank für die Erläuterung. Ich glaube am einfachsten wäre es wohl wenn ich einfach meine Force MP600 die ich als Unassigned Devices nutze zum Cache mache. Mein Schwager hat exakt den selben Server wie ich, nur mit der MP600 als Cache und er hat keine error. Kann ich dann einfach diese als Cache 2 machen und die Daten verschieben? Oder wie löse ich das am einfachsten ohne Probleme zu bekommen? Quote Link to comment
ich777 Posted March 20, 2022 Share Posted March 20, 2022 1 hour ago, speedycxd said: Vielen dank für die Erläuterung. Sollte dieser Eintrag in der syslinux.conf nicht auch helfen: pci=noaer Ich brauch das bei meinem „neuen“ Motherboard mit meinen DigitalDevices TV Karten da sie sonst nicht richtig funktionieren, siehe dieser Thread: Quote Link to comment
mgutt Posted March 20, 2022 Share Posted March 20, 2022 35 minutes ago, ich777 said: Sollte dieser Eintrag in der syslinux.conf nicht auch helfen: pci=noaer In der Doku steht nur was von "Error" und nicht correctable Error: https://docs.kernel.org/PCI/pcieaer-howto.html#:~:text=When AER is enabled%2C a,its PCI Express capability structure. Du nimmst damit also denke ich in Kauf, dass du richtige Fehler niemals siehst. Quote Link to comment
ich777 Posted March 20, 2022 Share Posted March 20, 2022 4 minutes ago, mgutt said: Du nimmst damit also denke ich in Kauf, dass du richtige Fehler niemals siehst. Ich sehe das nicht wirklich als Problem da man auch bedenken muss das manche Motherboards AER von Werk aus nicht aktiviert haben bzw. sich das auf manchen Motherboards nicht mal aktivieren lässt und das dann eigentlich nichts anderes ist als wenn du AER ausschaltest. Soweit ich weiß werden alle Fehler die produziert werden nochmal übermittelt so das du dann eigentlich keinen Fehler hast da dieser erfolgreich erkannt wird. Manche Geräte haben auch Probleme wenn dieses Feature an geschaltet ist wie zB meine DVB Karten. Quote Link to comment
mgutt Posted March 20, 2022 Share Posted March 20, 2022 41 minutes ago, ich777 said: Ich brauch das bei meinem „neuen“ Motherboard mit meinen DigitalDevices TV Karten da sie sonst nicht richtig funktionieren Schau Mal hier: https://gist.github.com/flisboac/5a0711201311b63d23b292110bb383cd Vielleicht kannst du ähnliches umsetzen? Quote Link to comment
ich777 Posted March 20, 2022 Share Posted March 20, 2022 1 minute ago, mgutt said: Vielleicht kannst du ähnliches umsetzen? Mein Problemnist wenn ich AER an schalte dann funktionieren eben die Karten nicht richtig, das ist eher ein Hardware kompatibilitätsproblem. auf meinem alten Board funktionierte es ohne Probleme und auf meinem Z690 funktionieren die Karten auch ohne Probleme nur auf meinem Z490 hab ich Probleme damit. Quote Link to comment
speedycxd Posted March 20, 2022 Author Share Posted March 20, 2022 4 hours ago, ich777 said: Sollte dieser Eintrag in der syslinux.conf nicht auch helfen: pci=noaer Ich brauch das bei meinem „neuen“ Motherboard mit meinen DigitalDevices TV Karten da sie sonst nicht richtig funktionieren, siehe dieser Thread: Danke, habe es jetzt mal so gemacht und der error ist weg. Ich werde aber wohl doch lieber demnächst mal die Cache nvme tauschen. Quote Link to comment
Anym001 Posted March 21, 2022 Share Posted March 21, 2022 22 hours ago, mgutt said: Hier noch eine Tabelle, die von der Kingston A2000 zu sein scheint: https://wiki.archlinux.org/title/Solid_state_drive/NVMe#Controller_failure_due_to_broken_APST_support Da ist der Schwellwert für PS4 "15000", daher würde jeder Wert zwischen "2000" und "15000" den PS4 deaktivieren. Ich habe eine Crucial P5 2TB (CT2000P5SSD8) verbaut und habe derzeit 5500 als Schwellwert angegeben. Hier die Ausgabe von smartctl -a /dev/nvme0 Quote Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 8.25W - - 0 0 0 0 0 0 1 + 3.00W - - 1 1 1 1 0 0 2 + 1.90W - - 2 2 2 2 0 0 3 - 0.0800W - - 3 3 3 3 10000 2500 4 - 0.0050W - - 4 4 4 4 12000 35000 Verstehe ich das richtig, dass ich mit 5500 auch den State 3 nicht erreiche? Wäre in meinem Fall nicht ein Wert zwischen 12000 und 35000 besser? Was mich ein wenig irritiert ist, dass der zweite Schwellwert von State 3 geringer ist als der erste von State 4. Quote Link to comment
mgutt Posted March 21, 2022 Share Posted March 21, 2022 47 minutes ago, Anym001 said: Verstehe ich das richtig, dass ich mit 5500 auch den State 3 nicht erreiche? Ich habe noch mal etwas recherchiert. Tatsächlich ist der ex_lat der relevante Wert: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/nvme/host/core.c?h=v5.9-rc7 Quote we will enter the next lower-powern on-operational state after waiting 50 * (enlat + exlat) microseconds, as long as that state's exit latency is under the requested maximum latency. Ich passe meinen Text oben noch mal an. 1 Quote Link to comment
toegelr Posted January 24 Share Posted January 24 (edited) Leider habe ich mit meinen beiden WD Red SN700 NVMe SSD 4TB M.2 PCIe Gen3 mit dem C246M-WU4 (rev. 1.1) auch das "Problem" das mein Log mit diesen AER Meldungen überflutet wird. Bei mir wird folgendes bei beiden NVMEs mit smartctl -a /dev/nvme0 oder smartctl -a /dev/nvme1 angezeigt: Supported Power States St Op Max Active Idle RL RT WL WT Ent_Lat Ex_Lat 0 + 6.00W - - 0 0 0 0 0 0 1 + 3.50W - - 1 1 1 1 0 0 2 + 3.00W - - 2 2 2 2 0 0 3 - 0.1000W - - 3 3 3 3 4000 12000 4 - 0.0035W - - 4 4 4 4 4000 45000 Jetzt meine Frage wenn ich nvme_core.default_ps_max_latency_us=XXX angegebe welchen Wert würdet Ihr nehmen 6000 ? und gebe ich den Befehl so an wie auf dem Screenshot ersichtlich ? Edited January 24 by toegelr Quote Link to comment
mgutt Posted January 24 Share Posted January 24 Setz den Wert erstmal auf Null. Dann schauen ob das hilft. Danach könntest du einen Wert größer als 12000 und kleiner als 45000 versuchen, um PS4 zu deaktivieren. Und ja, Screenshot ist korrekt. 1 Quote Link to comment
toegelr Posted January 25 Share Posted January 25 Mit der Einstellung nvme_core.default_ps_max_latency_us=0 ist es wesentlich weniger of vorgekommen im laufe des Tages nur 1x bis jetzt. Ist es sinnvoll andere Werte zu testen oder kann es nur noch schlechter werden ? Quote Link to comment
mgutt Posted January 26 Share Posted January 26 21 hours ago, toegelr said: Ist es sinnvoll andere Werte zu testen oder kann es nur noch schlechter werden ? Es wird gleich bleiben oder schlechter werden. Wenn du mit wenigen Fehlern leben kannst, könntest du zb 15000 probieren. Dann wird nur PS4 deaktiviert. Quote Link to comment
toegelr Posted January 26 Share Posted January 26 Danke für Deine Antworten, ich hatte Heute in der Früh den Wert 6000 eingestellt und über 20 Stunden keinen AER Eintrag in meinem Log. Ich kann das jetzt aber nicht deuten ist es gut das bei einem Wert von 6000 kein Eintrag mehr kommt oder logisch, soll ich das so lassen oder kann ich mein System sparsamer machen mit einem anderen Wert ? Ich kann nat. zum Test jetzt einmal 15000 eingeben und Neustarten ... Quote Link to comment
mgutt Posted January 26 Share Posted January 26 27 minutes ago, toegelr said: kann ich mein System sparsamer machen mit einem anderen Wert ? Das wirst du uns nur sagen können (Messen). Viel wird es aber vermutlich nicht ausmachen. Übrigens ist es nicht ungewöhnlich, dass zwischen zwei Neustarts die Fehler mal mehr und mal weniger auftauchen. Keine Ahnung warum, aber hatte ich auch. Es ist also leider kein 100%-tiges Indiz, dass es jetzt stabil bleibt. Lass es vielleicht einfach so und beobachte es länger. Quote Link to comment
toegelr Posted January 31 Share Posted January 31 (edited) Ich habe die Werte 15000 sowie 6000 jetzt längere Zeit getestet mit 6000 kommt kein AER Fehler mehr mit 15000 sporadisch in 24H 2 - 3 AER Meldungen. Beim Stromvverbrauch ist der Verbrauch mit 6000 geringfügig höher als mit 15000 was ich so beobachtet habe. Sollte ich noch andere Werte testen z.B. 5500 ? Bzw. was sagen diese Werte aus ? Danke für Deine Hilfe. Edited January 31 by toegelr Quote Link to comment
mgutt Posted February 1 Share Posted February 1 6000 is kleiner als 12000. Daher ist dadurch PS3 und PS4 deaktiviert. Und da 15000 größer ist als 12000 wird dadurch nur PS4 deaktiviert. Andere Zahlen haben keinen Sinn. Du kannst dadurch nur PS3 oder PS4 deaktivieren. 1 Quote Link to comment
toegelr Posted February 2 Share Posted February 2 Danke für die Rückmeldung, was ich mich jetzt frage ob ich die WD SN700 red überhaupt behalten oder ersetzten soll damit ich gar nicht diese AER Meldungen bekomme. Ich dachte nur das diese NVMe „besonders“ geeignet sind ?Gesendet von iPhone mit Tapatalk Pro Quote Link to comment
mgutt Posted February 2 Share Posted February 2 18 hours ago, toegelr said: Ich dachte nur das diese NVMe „besonders“ geeignet sind ? Wer sagt das? Ich empfehle zb ausschließlich Samsung. Quote Link to comment
toegelr Posted February 2 Share Posted February 2 Gesagt hat mir das niemand, ich habe (falsch) gedacht. 1 Stk. von meinen beiden könnte ich noch zurück geben …Gesendet von iPhone mit Tapatalk Pro Quote Link to comment
h0schi Posted February 8 Share Posted February 8 (edited) On 2/3/2023 at 12:24 AM, toegelr said: Gesagt hat mir das niemand, ich habe (falsch) gedacht. 1 Stk. von meinen beiden könnte ich noch zurück geben … Gesendet von iPhone mit Tapatalk Pro Hab zwei SN700 (500GB & 1TB) auf einem Gigabyte C246M-WU4 und hatte die gleichen Probleme. Hab es mit dem Boot-Parameter / Syslinux configuration "nvme_core.default_ps_max_latency_us=8000" in den Griff bekommen. Edited February 8 by h0schi 1 Quote Link to comment
toegelr Posted February 8 Share Posted February 8 Danke für die Nachricht! Ich hatte 2 Stk. 4TB, ein Stück habe ich zurück geben können. Jetzt habe ich 1 Stk. WD SN700 red und ein Stk. Corsair Force Series MP 510 im Einsatz und experimentiere noch. Den Wert 8000 werde ich noch testen.Danke.Gesendet von iPhone mit Tapatalk Pro 1 Quote Link to comment
Revan335 Posted March 11 Share Posted March 11 On 2/9/2023 at 12:56 AM, toegelr said: Danke für die Nachricht! Ich hatte 2 Stk. 4TB, ein Stück habe ich zurück geben können. Jetzt habe ich 1 Stk. WD SN700 red und ein Stk. Corsair Force Series MP 510 im Einsatz und experimentiere noch. Den Wert 8000 werde ich noch testen. Danke. Gesendet von iPhone mit Tapatalk Pro Was hat dein Test ergeben? Hab ebenfalls 2 WD RED SN700. Einmal Board und einmal PCIe Karte. Gigabyte Technology Co., Ltd. C246M-WU4-CF , Version Default string American Megatrends Inc., Version F5 BIOS Datum: Di 09 Nov 2021 12:00:00 AM CET Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.