En fejl er blevet identificeret i Linux-kernen, der forårsager, at nogle programmer, der bruger AVX, ikke fungerer korrekt

I Linux-kernen siden udgivelse 5.2, kommer til syne En fejl, der forårsager, at indholdet af AVX-registret bliver overtrådt ved retur fra en signalbehandler, der håndteres, når en undtagelse kastes (sidefejl). Problemet opstår, når der køres flertrådede programmer ("-pthread"), der involverer beregninger med AVX-registret, hvis kernen er indbygget i GCC 9 (hvis indbygget i tidligere udgivelser af GCC, vises fejlen ikke, da GCC 9 caches adressen på den tråd-lokale variabel i registret, og tidligere versioner af GCC indlæser den hver gang).

Problemet får programmet til at afslutte for tidligt med en hukommelseskorruptionsfejl. Den mest bemærkelsesværdige og hyppigst observerede manifestation af fejlen stål går ned applikationer, skrevet på Go-sproget. På grund af det bemærkede problem afsluttes Go-programmer for tidligt, normalt med fejlene "runtime error: ugyldig hukommelsesadresse eller nul pointer dereference", "runtime: unexpected return pc" og "segmentation violation". Fejlen i kernen forbliver urettet. Muligheden overvejes tilføjelse af ændringer til Go-sprogets runtime for selektivt at omgå fejl på problematiske Linux-kerner på bekostning af yderligere overhead.

Kilde: opennet.ru

Tilføj en kommentar