Nel kernel di Linux è stato individuato un errore che causa il malfunzionamento di alcuni programmi che utilizzano AVX.

Nel kernel Linux, a partire dalla versione 5.2, si manifesta un errore che porta a una corruzione del contenuto del registro AVX durante il ritorno da un gestore di segnali che viene eseguito in caso di generazione di un'eccezione (page-fault). Il problema si verifica quando vengono eseguiti programmi multithreading («-pthread») che contengono calcoli con il registro AVX, nel caso di compilazione del kernel con GCC 9 (con compilazioni in versioni precedenti di GCC l'errore non si manifesta, poiché GCC 9 memorizza nella cache l'indirizzo della variabile thread-local nel registro, mentre le versioni precedenti di GCC lo caricano ogni volta).

Il problema porta a un termine anticipato del programma con un errore di corruzione della memoria. L'aspetto più evidente e frequentemente osservato dell'errore è diventato i crash di applicazioni, scritte in linguaggio Go. A causa del problema evidenziato, i programmi in linguaggio Go terminano prematuramente, generalmente con errori «runtime error: invalid memory address or nil pointer dereference», «runtime: unexpected return pc» e «segmentation violation». Nel kernel l'errore rimane ancora non risolto. Si sta considerando la possibilità di aggiungere al runtime del linguaggio Go modifiche per bypassare selettivamente l'errore su alcuni kernel Linux problematici, a costo di un aumento delle sovraccariche.

Fonte: opennet.ru

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