En feil har blitt identifisert i Linux-kjernen som gjør at noen programmer som bruker AVX ikke fungerer

I Linux-kjernen siden utgivelse 5.2, vises En feil som gjør at innholdet i AVX-registeret blir krenket ved retur fra en signalbehandler som håndteres når et unntak blir kastet (sidefeil). Problemet oppstår når du kjører flertrådede programmer ("-pthread") som involverer beregninger med AVX-registeret, hvis kjernen er bygget i GCC 9 (hvis bygget i tidligere utgaver av GCC, vises ikke feilen, siden GCC 9 cacher adressen til den trådlokale variabelen i registeret, og tidligere versjoner av GCC laster den inn hver gang).

Problemet fører til at programmet avsluttes for tidlig med en minnekorrupsjonsfeil. Den mest merkbare og ofte observerte manifestasjonen av feilen stål krasjer søknader, skrevet på Go-språket. På grunn av det bemerkede problemet, avsluttes Go-programmer for tidlig, vanligvis med feilene "runtime error: ugyldig minneadresse eller null pekerdereference", "runtime: unexpected return pc" og "segmentation violation". Feilen i kjernen forblir ufikset. Muligheten vurderes legge til endringer i Go-språkets kjøretid for å selektivt omgå feil på problematiske Linux-kjerner, på bekostning av ekstra overhead.

Kilde: opennet.ru

Legg til en kommentar