Bug im EDAC Treiber bei Linux Systemen
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Der Linux Error Detection And Correction (EDAC) Treiber soll Fehler des Arbeitsspeichers erkennen und korrigieren. Bei manchen Kernel-Versionen/Linuxdistributionen meldet EDAC allerdings vereinzelt Fehler, obwohl kein Fehler vorliegt.
Beispiele
Hier Beispiele von 3 verschiedenen Servern. Die Maschinen laufen jeweils stabil und beim Speichertest werden keine Fehler gefunden.
Server 1
EDAC MC0: UE page 0x0, offset 0x0, grain 536870912, row 2, labels ":": i3200 UE
Das gleiche Problem beschreibt ein Bug Report bei Red Hat, der leider nicht weiter verfolgt wurde (da der Bug gegen Fedora-12 erstellt wurde, das zum Zeitpunkt nicht mehr die neueste Fedora-Version war). Auch in diesem Fall lief der Server stabil:[1]
kernel:EDAC MC0: UE page 0x0, offset 0x0, grain 1073741824, row 3, labels ":": i3200 UE kernel:EDAC MC0: UE page 0x0, offset 0x0, grain 1073741824, row 7, labels ":": i3200 UE kernel:EDAC MC0: UE page 0x0, offset 0x0, grain 1073741824, row 2, labels ":": i3200 UE kernel:EDAC MC0: UE page 0x0, offset 0x0, grain 1073741824, row 6, labels ":": i3200 UE
In diesem Fall lieferte edac-util folgende Ausgabe:
mc0: csrow2: ch0|ch1: 36 Uncorrected Errors mc0: csrow3: ch0|ch1: 85 Uncorrected Errors mc0: csrow6: ch0|ch1: 103 Uncorrected Errors mc0: csrow7: ch0|ch1: 55 Uncorrected Errors
In einem ähnlichen Fall schrieb Red Hat: So, based on all information we have, this is a BIOS bug. There's nothing we can do to solve it, except to document that, on some i3210 boards, BIOS don't properly enable the error correction checks, and that disabling quickboot may solve the issue. I'll close this bug with a Technical note. [...] Some i3210 BIOSes have problems enabling the hardware checks at the MCU. On those hardware, customers should try to disable Quickboot and/or "Memory Remap Feature" or to disable EDAC drivers.[2]
Server2
EDAC i5000 MC0: FATAL ERRORS Found!!! 1st FATAL Err Reg= 0x7 EDAC i5000 MC0: Alert on non-redundant retry or fast reset timeout EDAC MC0: INTERNAL ERROR: channel-b out of range (4 >= 4) EDAC MC0: UE - no information available: INTERNAL ERROR
Server3
EDAC i5000 MC0: NON-FATAL ERRORS Found!!! 1st NON-FATAL Err Reg= 0x200 EDAC i5000: NON-Retry Errors, bits= 0x200 EDAC i5000 MC0: FATAL ERRORS Found!!! 1st FATAL Err Reg= 0x7 EDAC i5000 MC0: Alert on non-redundant retry or fast reset timeout EDAC MC0: INTERNAL ERROR: channel-b out of range (4 >= 4) EDAC MC0: UE - no information available: INTERNAL ERROR EDAC i5000 MC0: NON-FATAL ERRORS Found!!! 1st NON-FATAL Err Reg= 0x1ffefdf EDAC MC0: INTERNAL ERROR: channel-b out of range (4 >= 4) EDAC MC0: UE - no information available: INTERNAL ERROR EDAC MC0: CE row 1, channel 3, label "": (Branch=1 DRAM-Bank=0 RDWR=Read RAS=1935 CAS=0, CE Err=0x1e000) EDAC i5000: THERMAL Error, bits= 0x780000 EDAC i5000: NON-Retry Errors, bits= 0xe00 EDAC i5000: NORTHBOUND CRC Error, bits= 0x20000 EDAC i5000: SPD Protocol Error, bits= 0x40000 EDAC i5000: DIMM-Spare Error, bits= 0x1800000
Mögliche Lösung
Eine genaue Lösung ist leider nicht bekannt, in den meisten Fällen hilft es jedoch, das EDAC Modul zu blacklisten. Stellen Sie auf alle Fälle trotzdem sicher, dass der Server einwandfrei funktioniert. Führen Sie dazu am besten einen Speichertest durch.
Alternativ gibt es noch die Möglichkeit das EDAC Logging via sysfs zu deaktivieren.
# uncorrectable errors echo 0 > /sys/module/edac_core/parameters/edac_mc_log_ue # correctable errors echo 0 > /sys/module/edac_core/parameters/edac_mc_log_ce
Update: durch das Deaktivieren des Quick Boot im BIOS verschwinden manche Fehlermeldungen (wie im Beispiel des Servers 1 oben). Der Startvorgang dauert dadurch zwar 30-60 Sekunden länger, durch den RAM-Check durch das BIOS beim Hochfahren verschwinden aber die EDAC Fehlermeldungen.[3]
Einzelnachweise
- ↑ Bug 579958 - EDAC false positive UC errors with unbuffered ECC on 3200 controller (bugzilla.redhat.com)
- ↑ Bug 564274 - fake EDAC errors on i3210 (bugzilla.redhat.com)
- ↑ EDAC spam in dmesg, edac-utils shows no erros Kommentar #21