foofoobar schrieb:
@mae Ich kenne es so von Enterprise-Kisten und finde das auch sinnvoll und richtig, bedenke dabei das ECC bei mehr als 2 kaputten Bits undefiniert ist.
Ein UE betrifft 64 bits, und die sind nicht undefiniert, sie sind wahrscheinlich falsch (also wenn man die zusaetzlichen Bits ignoriert). Deswegen wird man sie auch nicht verwenden.
Und ich bin mir sicher, dass das Verhalten von Linux im Fall von UEs nicht fuer Consumer-Geraete eingebaut wurde, sondern vor allem weil die Hyperscaler nicht alle Prozesse auf einer ihrer grossen Maschinen mit >100 cores in den Wind schiessen wollen, nur weil beim Scrubbing in einem unbenutzen Speicherbereich ein UE gefunden wurde. Die wollen maximale Verfuegbarkeit und wenn schon Downtime, dann planbar. Aber vielleicht sind das keine Enterprise-Kisten.
Wenn der bei einem Zugriff von einem User-Prozess auftritt, wird das OS den Prozess wohl beenden, es gibt aber keinen Grund, alle anderen Prozesse zu beenden.
Wenn der UE beim Scrubbing auftritt, gibt es verschiedene Moeglichkeiten:
1) In jedem Fall den Vorfall loggen; dann kann die Wartungsmannschaft entsprechende Massnahmen ergreifen.
2) Wenn die Speicherstelle derzeit nicht in Verwendung ist, einfach die Seite, in der die Speicherstelle liegt, als kaputt markieren, sodass sie nicht ausgegeben wird.
3) Wenn die Speicherstelle in Verwendung ist, kann das OS entweder nichts machen, und sich darauf verlassen, dass bis zu einem eventuellen Zugriff der Speicher weiterhin einen UE liefert (und dann siehe oben). Oder das OS will auf Nummer sicher gehen, und markiert die ganze Seite als kaputt und entzieht dem Prozess die Zugriffsberechtigung; dann wird der Prozess bei jedem Zugriff auf irgendeine Speicherstelle in der Seite beendet.
Man will sich ja seine Lebensberechtigungskarte nicht kaputt rechnen lassen.
Natuerlich nicht, aber man will auch keinen Lockdown ueber eine Grossstadt verhaengen, weil in einem abgesperrten Park ein Baum umgefallen ist.