AVX ကိုအသုံးပြုသော ပရိုဂရမ်အချို့ကို ချွတ်ယွင်းသွားစေသည့် Linux kernel တွင် ချွတ်ယွင်းချက်တစ်ခုကို တွေ့ရှိခဲ့သည်။

5.2 ထွက်ရှိကတည်းက Linux kernel တွင်၊ ပေါ်လာသည်။ ခြွင်းချက်တစ်ခု (စာမျက်နှာ-အမှား) ချလိုက်သောအခါ ကိုင်တွယ်သည့် အချက်ပြကိုင်တွယ်သူမှ ပြန်ရောက်လာသောအခါ AVX မှတ်ပုံတင်ခြင်း၏ အကြောင်းအရာများကို ချိုးဖောက်စေသည့် အမှားတစ်ခု။ Kernel ကို GCC 9 တွင်တည်ဆောက်ပါက (GCC ၏အစောပိုင်းထွက်ရှိမှုများတွင်တည်ဆောက်ပါက၊ GCC 9 ကက်ရှ်များကြောင့် AVX မှတ်ပုံတင်ခြင်းနှင့်အတူ တွက်ချက်မှုများပါဝင်သည့် Multi-threaded ပရိုဂရမ်များ ("-pthread") ကိုလည်ပတ်သောအခါ ပြဿနာဖြစ်တတ်ပါသည်။ မှတ်ပုံတင်ရှိ thread-local variable ၏လိပ်စာနှင့် GCC ၏အစောပိုင်းဗားရှင်းများသည် အချိန်တိုင်း ၎င်းကိုတင်ပေးသည်)။

ပြဿနာသည် မှတ်ဉာဏ်ဖောက်ပြန်မှု အမှားအယွင်းကြောင့် ပရိုဂရမ်အား အချိန်မတိုင်မီ ရပ်စဲသွားစေသည်။ အထင်ရှားဆုံးနှင့် မကြာခဏ သတိပြုမိသော မှားယွင်းမှု ပေါ်လာခြင်း ဖြစ်သည်။ သံမဏိ ပျက်စီးသွားသည်။ applications များGo ဘာသာစကားဖြင့် ရေးသားထားသည်။ မှတ်သားထားသောပြဿနာကြောင့် Go ပရိုဂရမ်များသည် များသောအားဖြင့် "runtime error: invalid memory address or nil pointer dereference", "runtime: unexpected return pc" နှင့် "segmentationချိုးဖောက်မှု" တို့ဖြင့် အချိန်မတိုင်မီ ရပ်စဲသွားပါသည်။ kernel ရှိ bug သည် မပြင်ဆင်ရသေးပါ။ ဖြစ်နိုင်ချေကို ထည့်သွင်းစဉ်းစားနေပါသည်။ အပိုဆောင်းကုန်ကျစရိတ်ဖြင့် ပြဿနာရှိသော Linux kernels များတွင် အမှားများကို ရွေးချယ်လုပ်ဆောင်ရန် Go language runtime တွင် အပြောင်းအလဲများကို ပေါင်းထည့်ခြင်း။

source: opennet.ru

မှတ်ချက် Add