Linux ядросында AVX пайдаланатын кейбір бағдарламалардың дұрыс жұмыс істемеуіне әкелетін қате анықталды

5.2 шығарылымынан бері Linux ядросында, көрінеді Ерекшелік жойылған кезде өңделетін сигнал өңдегішінен қайтару кезінде AVX регистрінің мазмұнының бұзылуына әкелетін қате (бет қатесі). Мәселе AVX тізілімімен есептеулерді қамтитын көп ағынды бағдарламаларды («-pthread») іске қосу кезінде туындайды, егер ядро ​​GCC 9 ішінде салынған болса (GCC 9 кэштері болғандықтан қате пайда болмайды. регистрдегі жергілікті ағындық айнымалының мекенжайы және GCC бұрынғы нұсқалары оны әр уақытта жүктейді).

Мәселе жадты бұзу қателігімен бағдарламаның мерзімінен бұрын аяқталуына әкеледі. Қатенің ең байқалатын және жиі байқалатын көрінісі болды апаттар Өтініштер, Go тілінде жазылған. Белгіленген мәселеге байланысты Go бағдарламалары мерзімінен бұрын тоқтатылады, әдетте «орындалу қатесі: жарамсыз жад мекенжайы немесе нөл көрсеткішті ажырату», «орындалу уақыты: компьютерді күтпеген қайтару» және «сегментацияның бұзылуы» қателерімен. Ядродағы қате түзетілмеген күйінде қалады. Мүмкіндік қарастырылуда қосымша шығындар есебінен проблемалы Linux ядроларындағы қателерді таңдау үшін Go тілінің орындалу уақытына өзгертулерді қосу.

Ақпарат көзі: opennet.ru

пікір қалдыру