Alles 0, also deaktiviert. Nun möchte ich aber ASPM tatsächlich aktivieren. Ich habe auch bereits "pcie_aspm=force" versucht, funktioniert nicht, scheint vom BIOS verhindert zu werden. Im BIOS scheint es per default disabled zu sein und das Untermenu für ASPM ist hidden. Jetzt ist die Frage wie man ASPM aktivieren kann?
EDIT: "pcie_aspm.policy=powersave" oder "pcie_aspm.policy=powersupersave" scheinen aspm zu aktivieren, dabei ist es egal ob man "pcie_aspm=force" setzt. Ob das wirklich etwas bringt habe ich nicht getestet, ich muss wohl ne Stromzählersteckdose ordern.
Meinen vorherigen Post bezüglich ASPM muss ich korrigieren. Ich habe weitere Tests durchgeführt und konnte alle AER Fehler beheben ohne sie mit "pci=noaer" zu unterdrücken.
Hier einmal die Liste der ASPM-Richtlinien in Linux:
Bash:
$ cat /sys/module/pcie_aspm/parameters/policy
[default] performance powersave powersupersave
Meine Beobachtungen:
Wenn man kein Kernelparameter hinterlegt, bootet Linux standardmäßig mit "pcie_aspm.policy=default".
Mit der Richtlinie "default" und "performance" wird gemeldet, dass ASPM deaktiviert ist:
Bash:
lspci -vvv -s 0000:05:00.0 | grep --ignore-case aspm
LnkCap: Port #3, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <2us, L1 <16us
ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk+
Mit der Richtlinie "powersave" ist stattdessen "LnkCtl: ASPM Enabled".
Mit der Richtlinie "powersupersave" crasht der Boot und es gibt ein Reboot.
Aber selbst wenn ASPM auf Disabled steht, gibt es PCIe AER Fehler. Der Grund ist dass der Output oben nicht besagt, dass ASPM deaktiviert ist, sondern dass der Stromsparmodus vom ASPM deaktiviert ist.
Folgend kann man herausfinden ob ASPM wirklich deaktiviert ist:
Bash:
ls /sys/bus/pci/devices/0000\:05\:00.0/link/
l1_aspm
Wenn in dem Pfad "link" irgendeine Datei ist, wie im oberen Beispiel, ist ASPM immernoch aktiv, egal ob der Inhalt davon 0 oder 1 ist.
Daher, der einzige Weg es wirklich abzuschalten ist wohl "pcie_aspm=off" und zwar unabhängig davon, was im BIOS eingestellt wrude. Linux ignoriert das komplett.
Die Deaktivierung von ASPM scheint alle AER Fehler komplett zu lösen. Daher rate ich auch davor ab "pci=noaer" zu nutzen. Dieser nämlich ignoriert nur die Fehler bzw. nimmt wohl auch keine Korrekturen mehr vor bei Linkfehlern. Ob die Fehlerkorrekturen damit abgestellt werden, habe ich aber nicht ganz rausfinden können.
Von AER Fehlern sind außerdem nicht nur die NICs betroffen (0000:04:00.0 & 0000:05:00.0) sondern auch zwei PCIe Bridge Geräte (0000:00:01.4 & 0000:00:01.5). Die zwei Bridge Geräte generieren auch viel mehr Fehler, vor allem 0000:00:01.5 generiert gefühlt 50k Fehlerkorrekturen in 30min.
Zum Auflisten der AER Fehlerkorrekturen:
Bash:
grep -F '' /sys/bus/pci/devices/0000\:00\:01.5/aer_dev_correctable
RxErr 0
BadTLP 682
BadDLLP 11232
Rollover 0
Timeout 2
NonFatalErr 0
CorrIntErr 0
HeaderOF 0
TOTAL_ERR_COR 11276
Mein BIOS mod habe ich auch nochmals angepasst, weil dieses Board mit ASPM Probleme hat:
https://www.hardwareluxx.de/community/threads/gigabyte-mj11-ec1-nas-server.1345281/post-30686852
Hat das nen speziellen Grund fürs F02?
Der einzige Vorteil vom F02 ist ja, dass es Bifurcation Unterstützung bietet. Aber der eigentlich Grund ist, dass ich mich dabei nicht gut fühle, wenn ich das BIOS, was ich betreibe, nicht vom Hersteller direkt beziehen kann. Es ist also eher Paranoia.