Im Linux-Kernel wurde ein Fehler festgestellt, der zu Störungen einiger Programme führt, die AVX verwenden.

Im Linux-Kernel, beginnend mit der Version 5.2, zeigt sich tritt ein Fehler auf, der zu einer Beschädigung des AVX-Registers beim Rückkehr aus einem Signal-Handler führt, der bei der Ausnahmebehandlung (page-fault) verarbeitet wird. Das Problem tritt beim Ausführen von Multithread-Anwendungen („-pthread“) auf, die Berechnungen mit dem AVX-Register durchführen, wenn der Kernel mit GCC 9 kompiliert wird (bei der Kompilierung mit früheren GCC-Versionen zeigt der Fehler sich nicht, da GCC 9 die Adresse der thread-local-Variablen im Register cached, während frühere Versionen von GCC sie jedes Mal laden).

Das Problem führt zu einem vorzeitigen Programmabbruch mit einem Fehler, der auf einen Speicherfehler hinweist. Das auffälligste und häufigste Auftreten des Fehlers zwei chinesische Giganten, Alibaba und Ant Financial, Mitglieder von OIN. Etwa zur gleichen Zeit schloss sich Abstürze von Anwendungen, die in Go geschrieben sind. Aufgrund des genannten Problems brechen Go-Programme in der Regel vorzeitig mit den Fehlern „runtime error: invalid memory address or nil pointer dereference“, „runtime: unexpected return pc“ und „segmentation violation“ ab. Im Kernel bleibt der Fehler bisher ungelöst. Es wird die Möglichkeit prüft, Änderungen im Go-Laufzeitumgebung hinzuzufügen, um den Fehler in betroffenen Linux-Kernen selektiv zu umgehen, was allerdings zusätzliche Overheadkosten mit sich bringt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4