Cimo estis identigita en la Linukso-kerno, kiu igas iujn programojn, kiuj uzas AVX, malfunkcii

En la Linukso-kerno ekde eldono 5.2, aperas Eraro kiu igas la enhavon de la AVX-registro esti malobservita kiam revenas de signaltraktilo kiu estas pritraktita kiam escepto estas ĵetita (paĝ-faŭlto). La problemo okazas dum rulado de plurfadenaj programoj ("-pthread"), kiuj implikas kalkulojn kun la AVX-registro, se la kerno estas konstruita en GCC 9 (se enkonstruite en pli fruaj eldonoj de GCC, la eraro ne aperas, ĉar GCC 9 kaŝmemoroj). la adreso de la faden-loka variablo en la registro, kaj pli fruaj versioj de GCC ŝarĝas ĝin ĉiufoje).

La problemo kaŭzas, ke la programo ĉesiĝas antaŭtempe kun eraro pri korupta memoro. La plej rimarkinda kaj ofte observita manifestiĝo de la eraro fariĝis kraŝoj aplikoj, skribita en la lingvo Go. Pro la rimarkita problemo, Go-programoj finiĝas trofrue, kutime kun la eraroj "rultempa eraro: nevalida memoradreso aŭ nula montrilo dereference", "rultempo: neatendita reveno komputilo" kaj "segmenta malobservo". La cimo en la kerno restas nefiksita. La ebleco estas pripensita aldonante ŝanĝojn al la Go-lingva rultempo por selekteme preteriri erarojn sur problemaj Linukso-kernoj, koste de plia superkosto.

fonto: opennet.ru

Aldoni komenton