alturismo Posted July 28 Share Posted July 28 Hallo zusammen, hier ein script um das Thema set pci etwas zu erleichtern. Vorweg, dies ist ohne Gewähr, ebenso wird sich mein support hierzu sehr in Grenzen halten, ich persönlich habe davon wenig bis gar nichts da meine Server so oder so nie in die entsprechenden c-states kommen da mir immer etwas Last anliegt oder zu viel Geräte verbaut sind Ohne Gewähr bedeutet unter anderem 1/ es kann zu Instabilitäten führen 2/ es kann zu Data Corruption führen 3/ es kann zu Hardware Schäden führen 4/ es kann „alles Mögliche“ passieren Voraussetzung, bc package (anbei) unter /boot/extra (USB Stick, Ordner extra anlegen falls nicht vorhanden, dort ablegen), wird dann bei jedem Start mit installiert, initial per terminal auch ohne Neustart per installpkg /boot/extra/bc-1.07.1-x86_64-5.txz Herangehensweise ist wie folgt, wir schauen welches Gerät aktuell nicht im gewünschten aspm State sitzt, Befehl dazu wäre beispielsweise lspci -vv | awk '/ASPM/{print $0}' RS= | grep --color -P '(^[a-z0-9:.]+|ASPM |Disabled;|Enabled;)' Output wäre beispielsweise wobei wir uns hier primär erstmal um Geräte kümmern (1) und PCI Bridges hintenanstellen, diese sind in der Regel disabled weil das dahiner liegende Gerät disabled / nicht im gewünschten aspm state sitzt. In diesem Fall wäre es (1) der USB Controller asmedia auf 04:00.0 Jetzt schauen wir auf welchem root complex dieses sitzt, Beispiel lspci -t Output wäre beispielsweise dann Wie wir sehen sitzt der USB Controller (1) auf dem root complex 00:1c.0, wie erwartet sitzt dieser auch nicht im gewünschten aspm state, siehe oben (2). Das heißt, wir haben unseren Endpoint und den dazugehörigen root complex Endpoint wäre 04:00.0 Root complex wäre 00:1c.0 Diese beiden Adressen hinterlegen wir jetzt im script ASPM_SETTING=N (N=0-3) Hiermit definiere ich in welchen aspm state ich das Gerät (ENDPOINT) setzen möchte Dieses script wird auf dem Server abgelegt und ausführbar gesetzt, Beispiel chmod +x /mnt/user/system/aspm_enable_asmedia04.sh dann führen wir aus und schauen was passiert, in diesem Beispiel Was dann im Resultat wie folgt aussieht Jetzt wären sowohl der USB Controller als auch die dazugehörige bridge im gewünschten aspm state Hinweise Ja, das kann auf allen Geräten durchgeführt werden, mit mehr oder weniger erfolgreichem Ausgang USB Controller, Netzwekkarten, … usw usw … Nein, das ist nicht persistent und muss bei jedem Neustart erneut ausgeführt werden (go, user scripts, …) Ja, das kann zu besseren c-states führen Ja, das kann zu Problemen führen, bei Issues, einfach Neustart ohne Ausführung Ja, ich kann mit den diversen aspm states (0-3) spielen (immer nach Neustart) ALLES OHNE GEWÄHR Beispiel auf meinem n100er mit der bekannten Realtek Problematik, ja, ich bekomme die NIC damit in die passenden aspm states und „gefühlt“ ist alles in Ordnung, Transferraten, Dienste, smb, läuft alles wie gewohnt … aber, ich nutze beispielsweise TVHeadend mit SatIP Tuner (Fritz DVB-C & Octopus Net DVB-S), ich bekomme jedoch nach aspm settings zig Kontinuitätsfehler … sprich, streams haben Bildfehler, Aussetzer, … sprich, Data Corruption welche bei Live streams auch nicht korrigiert werden können … Das wäre beispielsweise ein „side effect“ resultierend aus „hartem“ aspm pci set …. während alles andere problemlos läuft (Datentransfer ist auch ok inkl. Checksum) Ich nutze dies jetzt seit ca. 2 Monaten auf 5 unterschiedlichen Systemen, bis auf den o.g. side effect hatte ich bisher noch keine Issues. Ich möchte nur darauf hingewiesen haben 😉 Bei Anmerkungen zu der Anleitung, gerne aspm_enable.sh bc-1.07.1-x86_64-5.txz 1 5 Quote Link to comment
MPC561 Posted July 28 Share Posted July 28 Vielleicht noch als Anmerkung. Bevor man das in sein "go" file aufnimmt erstmal das script manuell starten und ein paar Wochen testen. Ich persönlich gehe davon aus das ca. 90% der Leute die das (richtig) nutzen keine Probleme haben werden. Und denkt dran: Sobald ihr zusätzliche HW einbaut (TV-Karten, PCIe SATA Karten, M.3 SATA Karten etc.) dann vorm Einbau das script deaktivieren. Nach Einbau der HW Server hochfahren und wie @alturismo beschrieben hat die zwei Adressen (Endpoint/root complex) nochmal neu ermitteln. Die könnten sich verschoben haben. Und dann wieder testen. Jede neue Erweiterungskarte könnte zu Problemen führen wie Alto sie oben beschrieben hat. Und nochmal: Es gibt keine Garantie oder Gewähr das das alles sauber funktioniert oder Verantwortung für Schäden an HW oder Daten. Gruss, Joerg 2 Quote Link to comment
alturismo Posted July 28 Author Share Posted July 28 1 hour ago, MPC561 said: Vielleicht noch als Anmerkung. vielen Dank für die Ergänzungen !!! und credits an Dich, ohne deine pci set Anmerkungen aus dem n100er Thread wäre ich gar nicht auf die Idee gekommen 1 Quote Link to comment
alturismo Posted August 6 Author Share Posted August 6 kleiner Nachtrag zum Thema On 7/28/2024 at 7:35 AM, alturismo said: 1/ es kann zu Instabilitäten führen im oben gezeigten Beispiel hatte ich ja einen USB Controller in den passenden aspm state gesetzt, jetzt ist das mein Desktop / Gaming VM Server (und Backup Server) seit einiger Zeit. was ist passiert ... am Sonntag, Gaming VM, Controller geht nicht mehr, Tastatur geht nicht mehr ... logs gesichtet, permanentes "aussteigen" der USB Geräte ... USB software Reset, USB Geräte ab / anklemmen, aspm retour setzen, ... nichts hat geholfen ... am Ende, ein Neustart musste her, in Summe, hat ein paar Tage gehalten (~ 1 Woche), aber ... wohl nicht praktikabel nur als Nachtrag zum Thema "Instabilitäten" und Symptome ... kann jetzt auch Zufall gewesen sein 1 1 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.