V jedru Linuxa je bila odkrita napaka, zaradi katere nekateri programi, ki uporabljajo AVX, ne delujejo pravilno

V jedru Linuxa od izdaje 5.2 dalje se kaže Napaka, ki povzroči kršitev vsebine registra AVX pri vrnitvi iz upravljalnika signalov, ki se obravnava, ko je vržena izjema (page-fault). Težava se pojavi pri izvajanju večnitnih programov ("-pthread"), ki vključujejo izračune z registrom AVX, če je jedro vgrajeno v GCC 9 (če je vgrajeno v prejšnjih izdajah GCC, se napaka ne prikaže, ker GCC 9 predpomni naslov lokalne spremenljivke niti v registru, prejšnje različice GCC pa jo naložijo vsakič).

Težava povzroči, da se program predčasno prekine z napako poškodbe pomnilnika. Najbolj opazna in pogosto opažena manifestacija napake postali zrušitve aplikacije, napisano v jeziku Go. Zaradi opažene težave se programi Go predčasno končajo, običajno z napakami »napaka med izvajanjem: neveljaven pomnilniški naslov ali dereferenca ničelnega kazalca«, »izvajalno okolje: nepričakovan povratni računalnik« in »kršitev segmentacije«. Napaka v jedru ostaja nepopravljena. Možnost se preučuje dodajanje sprememb v izvajalnem okolju jezika Go za selektivno izogibanje napakam na problematičnih jedrih Linuxa za ceno dodatnih stroškov.

Vir: opennet.ru

Dodaj komentar