Linuxi tuumas on tuvastatud viga, mis põhjustab mõnede AVX-i kasutavate programmide talitlushäireid

Linuxi tuumas alates versioonist 5.2 ilmub Viga, mis põhjustab AVX-registri sisu rikkumise signaalikäsitlejalt naasmisel, mida käsitletakse erandi tegemisel (lehetõrge). Probleem ilmneb mitme lõimega programmide ("-pthread") käitamisel, mis hõlmavad arvutusi AVX-registriga, kui kernel on ehitatud GCC 9-sse (kui see on sisse ehitatud GCC varasemates versioonides, viga ei ilmu, kuna GCC 9 vahemällu salvestab lõime kohaliku muutuja aadress registris ja GCC varasemad versioonid laadivad selle iga kord).

Probleem põhjustab programmi enneaegse lõpetamise mälurikke vea tõttu. Vea kõige märgatavam ja sagedamini täheldatud ilming teras jookseb kokku rakendused, kirjutatud Go keeles. Täheldatud probleemi tõttu lõpetavad Go programmid enneaegselt, tavaliselt ilmuvad vead "käivitusviga: kehtetu mäluaadress või viide null", "käitusaeg: ootamatu tagasipöördumine arvuti" ja "segmenteerimise rikkumine". Kerneli viga on praegu parandamata. Kaalutakse võimalust muudatuste lisamine Go-keele käitusaega, et probleemsete Linuxi tuumade vigadest valikuliselt mööda minna, lisades lisakulusid.

Allikas: opennet.ru

Lisa kommentaar