Bug parantos diidentifikasi dina kernel Linux anu nyababkeun sababaraha program anu nganggo AVX gagal

Dina kernel Linux Ubuntu saprak release 5.2, nembongan Kasalahan anu nyababkeun eusi register AVX dilanggar nalika uih deui ti panangan sinyal anu diurus nalika aya pengecualian dialungkeun (halaman-lepat). Masalahna lumangsung nalika ngajalankeun program multi-threaded ("-pthread") anu ngalibetkeun itungan sareng register AVX, upami kernel diwangun dina GCC 9 (upami diwangun dina sékrési saméméhna GCC, kasalahanna henteu muncul, sabab GCC 9 caches. alamat variabel thread-lokal dina register, sarta versi saméméhna tina GCC ngamuat eta unggal waktu).

Masalahna ngabalukarkeun program pikeun ngeureunkeun prematurely kalawan kasalahan korupsi memori. Manifestasi kasalahan anu paling katingali sareng sering dititénan geus ngajadi ngadat aplikasi, ditulis dina basa Go. Alatan masalah nyatet, program Go nungtungan prematurely, biasana ku kasalahan "runtime error: alamat memori teu valid atawa nil pointer dereference", "runtime: kaduga balik pc" jeung "pelanggaran segmentation". Bug dina kernel tetep unfixed. Kamungkinan keur dianggap nambahkeun parobahan kana runtime basa Go pikeun selektif bypass kasalahan dina kernels Linux Ubuntu masalah, kalawan biaya overhead tambahan.

sumber: opennet.ru

Tambahkeun komentar