Linux-ytimessä on havaittu virhe, joka aiheuttaa joidenkin AVX:ää käyttävien ohjelmien toimintahäiriön

Linux-ytimessä julkaisusta 5.2 lähtien ilmenee Virhe, joka aiheuttaa AVX-rekisterin sisällön rikkomisen palatessa signaalinkäsittelystä, jota käsitellään poikkeuksen yhteydessä (sivuvika). Ongelma ilmenee käytettäessä monisäikeisiä ohjelmia ("-pthread"), jotka sisältävät laskelmia AVX-rekisterin kanssa, jos ydin on rakennettu GCC 9:ään (jos se on rakennettu GCC:n aikaisempiin julkaisuihin, virhettä ei näy, koska GCC 9 tallentaa välimuistiin säikeen paikallismuuttujan osoite rekisterissä ja GCC:n aiemmat versiot lataavat sen joka kerta).

Ongelma saa ohjelman lopettamaan ennenaikaisesti muistin vioittumisvirheen. Huomattavin ja useimmin havaittu virheen ilmentymä teräs kaatuu sovellukset, kirjoitettu Go-kielellä. Mainitun ongelman vuoksi Go-ohjelmat päättyvät ennenaikaisesti, yleensä virheillä "ajonaikainen virhe: virheellinen muistiosoite tai nolla osoittimen viittaus", "ajoaika: odottamaton paluu pc" ja "segmentointivirhe". Ytimen vika pysyy korjaamattomana. Mahdollisuutta harkitaan lisäämällä muutoksia Go-kielen ajonaikaisuuteen, jotta voidaan valikoivasti kiertää ongelmallisten Linux-ytimien virheet ylimääräisten yleiskustannusten kustannuksella.

Lähde: opennet.ru

Lisää kommentti