V linuxovém jádře byla zjištěna chyba, která způsobuje nefunkčnost některých programů využívajících AVX

V linuxovém jádře od vydání 5.2 projevuje se Chyba, která způsobí narušení obsahu registru AVX při návratu z obslužného programu signálu, který je zpracován při vyvolání výjimky (chyba stránky). Problém nastává při spouštění vícevláknových programů ("-pthread"), které zahrnují výpočty s registrem AVX, pokud je jádro zabudováno v GCC 9 (pokud je zabudováno v dřívějších verzích GCC, chyba se neobjeví, protože GCC 9 se ukládá do mezipaměti adresa lokální proměnné vlákna v registru a dřívější verze GCC ji pokaždé načtou).

Problém způsobí předčasné ukončení programu s chybou poškození paměti. Nejnápadnější a nejčastěji pozorovaný projev chyby ocel havaruje aplikace, napsaný v jazyce Go. Kvůli uvedenému problému se programy Go předčasně ukončí, obvykle s chybami „chyba běhu: neplatná adresa paměti nebo dereference nulového ukazatele“, „běh: neočekávaný návrat pc“ a „narušení segmentace“. Chyba v jádře zůstává neopravena. Možnost se zvažuje přidání změn do běhového prostředí jazyka Go pro selektivní obcházení chyb na problematických linuxových jádrech za cenu další režie.

Zdroj: opennet.ru

Přidat komentář