Prohoster > Blog > tin tức mạng > Đã xác định được một lỗi trong nhân Linux khiến một số chương trình sử dụng AVX gặp trục trặc
Đã xác định được một lỗi trong nhân Linux khiến một số chương trình sử dụng AVX gặp trục trặc
В ядре Linux, начиная с выпуска 5.2, biểu lộ ошибка, которая приводит к нарушению содержимого регистра AVX при возврате из обработчика сигнала, обрабатываемого при генерации исключения (page-fault). Проблема возникает при запуске многопоточных программ («-pthread»), в которых имеются вычисления с регистром AVX, в случае сборки ядра в GCC 9 (при сборке в более ранних выпусках GCC ошибка не проявляется, так как GCC 9 кэширует адрес переменной thread-local в регистре, а более ранние версии GCC загружают его каждый раз).
Проблема приводит к преждевременному завершению программы с ошибкой повреждения памяти. Наиболее заметным и часто наблюдаемым проявлением ошибки thépsự cốứng dụng, написанных на языке Go. Из-за отмеченной проблемы программы на языке Go преждевременно завершаются, как правило, с ошибками «runtime error: invalid memory address or nil pointer dereference», «runtime: unexpected return pc» и «segmentation violation». В ядре ошибка пока остаётся неисправленной. Рассматривается возможность добавления в runtime языка Go изменений для выборочного обхода ошибки на проблемных ядрах Linux, ценой появления дополнительных накладных расходов.