È stato individuato un errore nel kernel Linux che causa malfunzionamenti in alcuni programmi che utilizzano AVX.

Nel kernel Linux, a partire dalla versione 5.2, si manifesta si manifesta un errore che provoca la corruzione del contenuto del registro AVX durante il ritorno da un gestore di segnali trattato in caso di generazione di un'eccezione (page-fault). Il problema si verifica quando si eseguono programmi multi-threaded ("-pthread") che coinvolgono calcoli con il registro AVX, nel caso di una compilazione del kernel con GCC 9 (nella compilazione con versioni precedenti di GCC l'errore non si manifesta, poiché GCC 9 memorizza nella cache l'indirizzo di una variabile thread-local nel registro, mentre le versioni precedenti di GCC lo caricano ogni volta).

Il problema porta a una terminazione prematura del programma con un errore di corruzione della memoria. La manifestazione più evidente e frequentemente osservata dell'errore sono stati interruzioni applicazioni, scritti in linguaggio Go. A causa del problema segnalato, i programmi in linguaggio Go terminano prematuramente, di solito con errori "runtime error: invalid memory address or nil pointer dereference", "runtime: unexpected return pc" e "segmentation violation". Nel kernel l'errore rimane attualmente irrisolto. Si sta considerando la possibilità di apportare modifiche al runtime del linguaggio Go per eludere selettivamente l'errore sui kernel Linux problematici, a costo di introdurre sovraccarichi aggiuntivi.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster