V jádře Linuxu, počínaje verzí 5.2, 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 , 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. 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
