In brek is identifisearre yn 'e Linux-kernel dy't feroarsaket dat guon programma's dy't AVX brûke, misbrûke

Yn 'e Linux kernel sûnt release 5.2, ferskynt In flater dy't feroarsaket dat de ynhâld fan it AVX-register wurdt skeind by it weromkommen fan in sinjaalhanneler dy't behannele wurdt as in útsûndering wurdt smiten (side-fout). It probleem komt foar by it útfieren fan multi-threaded programma's ("-pthread") dy't berekkeningen befetsje mei it AVX-register, as de kernel is boud yn GCC 9 (as boud yn eardere releases fan GCC, ferskynt de flater net, om't GCC 9 caches it adres fan 'e thread-lokale fariabele yn it register, en eardere ferzjes fan GCC laden it elke kear).

It probleem feroarsaket it programma te beëinigjen te betiid mei in ûnthâld korrupsje flater. De meast opfallende en faak waarnommen manifestaasje fan 'e flater binne wurden wurden crashes applikaasjes, skreaun yn Go-taal. Fanwege it opmurken probleem, Go-programma's beëinigje te betiid, meastentiids mei de flaters "runtime flater: ûnjildich ûnthâld adres of nul pointer dereference", "runtime: ûnferwachte werom PC" en "segmentaasje violation". De brek yn 'e kernel bliuwt unfixed. De mooglikheid wurdt besjoen wizigingen tafoegje oan 'e Go-taalruntime om flaters op problematyske Linux-kernels selektyf te omgean, op kosten fan ekstra overhead.

Boarne: opennet.ru

Add a comment