En bugg har identifierats i Linux-kärnan som gör att vissa program som använder AVX inte fungerar

I Linux-kärnan sedan release 5.2, visas Ett fel som gör att innehållet i AVX-registret kränks vid återkomst från en signalhanterare som hanteras när ett undantag kastas (page-fault). Problemet uppstår när man kör flertrådade program ("-pthread") som involverar beräkningar med AVX-registret, om kärnan är inbyggd i GCC 9 (om den är inbyggd i tidigare versioner av GCC visas inte felet, eftersom GCC 9 cachar adressen för den trådlokala variabeln i registret och tidigare versioner av GCC laddar den varje gång).

Problemet gör att programmet avslutas i förtid med ett minnesfel. Den mest märkbara och ofta observerade manifestationen av felet stål kraschar tillämpningar, skriven på Go-språket. På grund av det noterade problemet avslutas Go-program i förtid, vanligtvis med felen "runtime error: ogiltig minnesadress eller noll pointer dereference", "runtime: oväntad return pc" och "segmentation violation". Felet i kärnan förblir okorrigerat tills vidare. Möjligheten övervägs lägga till ändringar i Go-språkets körtid för att selektivt kringgå fel på problematiska Linux-kärnor, till bekostnad av ytterligare omkostnader.

Källa: opennet.ru

Lägg en kommentar