Er is een bug in de Linux-kernel geïdentificeerd die ervoor zorgt dat sommige programma's die AVX gebruiken niet goed functioneren

In de Linux-kernel sinds release 5.2, komt naar voren Een fout die ervoor zorgt dat de inhoud van het AVX-register wordt geschonden bij terugkeer van een signaalhandler die wordt afgehandeld wanneer een uitzondering wordt gegenereerd (paginafout). Het probleem doet zich voor bij het uitvoeren van multi-threaded programma's ("-pthread") die berekeningen met het AVX-register omvatten, als de kernel is gebouwd in GCC 9 (indien ingebouwd in eerdere versies van GCC, verschijnt de fout niet, aangezien GCC 9 caches bevat het adres van de lokale threadvariabele in het register, en eerdere versies van GCC laden deze elke keer).

Het probleem zorgt ervoor dat het programma voortijdig wordt beëindigd met een geheugenbeschadigingsfout. De meest opvallende en vaak waargenomen manifestatie van de fout staal loopt vast toepassingen, geschreven in Go-taal. Vanwege het genoemde probleem worden Go-programma's voortijdig beëindigd, meestal met de fouten "runtime-fout: ongeldig geheugenadres of nul pointer-dereferentie", "runtime: onverwachte retour-pc" en "segmentatieschending". De bug in de kernel is nog steeds niet opgelost. Er wordt over de mogelijkheid nagedacht het toevoegen van wijzigingen aan de Go-taalruntime om selectief fouten op problematische Linux-kernels te omzeilen, ten koste van extra overhead.

Bron: opennet.ru

Voeg een reactie