V Linuxovém jádře byla odhalena chyba, která způsobuje selhání některých programů používajících AVX.

V jádře Linuxu, počínaje verzí 5.2, se projevuje existuje chyba, která způsobuje poškození obsahu registru AVX při návratu z obslužné rutiny signálů, zpracovávané při generování výjimky (page-fault). Problém se objevuje při spuštění vícerozměrných programů („-pthread“), které provádějí výpočty s registrem AVX, v případě kompilace jádra v GCC 9 (při kompilaci ve starších verzích GCC se chyba neprojevuje, protože GCC 9 ukládá adresu proměnné thread-local do registru, zatímco starší verze GCC ji vždy načítají).

Problém vede k předčasnému ukončení programu s chybou poškození paměti. Nejvýraznějším a nejčastěji pozorovaným projevem chyby se staly pády aplikací, napsaných v jazyce Go. Kvůli již zmíněnému problému programy v jazyce Go předčasně končí, obvykle s chybami „runtime error: invalid memory address or nil pointer dereference“, „runtime: unexpected return pc“ a „segmentation violation“. V jádře zatím zůstává chyba neopravena. Zvažuje se možnost přidání změn do runtime jazyka Go pro selektivní obcházení chyby na problematických jádrech Linuxu, na úkor vznikajících dodatečných nákladů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster