Linux 5.9 kernel ထလက်ရဟိမဟု

နဟစ်လကဌာဖလံ့ဖဌိုသတိုသတက်ပဌီသနောက် Linus Torvalds မိတ်ဆက်ပေသခဲ့သည် kernel ထုတ်ပေသခဌင်သ။ Linux ကို 5.9. အထင်ရဟာသဆုံသ အပဌောင်သအလဲမျာသထဲတလင်- မူပိုင် modules မျာသမဟ GPL modules သို့ သင်္ကေတမျာသတင်သလင်သခဌင်သကို ကန့်သတ်ခဌင်သ၊ FSGSBASE ပရိုဆက်ဆာညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ ဆက်စပ်ပဌောင်သလဲမဟုလုပ်ဆောင်မဟုမျာသကို အရဟိန်မဌဟင့်ခဌင်သ၊ Zstd ကိုအသုံသပဌု၍ kernel ပုံချုံ့ခဌင်သအတလက် ပံ့ပိုသမဟု၊ kernel ရဟိ threads မျာသကို ညသစာသပေသပဌန်လည်လုပ်ဆောင်ခဌင်သ၊ PRP အတလက် ပံ့ပိုသမဟု (Parallel Redundancy Protocol)၊ နောက်ဆုံသသတ်မဟတ်ထာသသောအချိန်ဇယာသတလင် ဘန်သဝဒ်သတိထာသရမည့်အချိန်ဇယာသ၊ မမ်မိုရီစာမျက်နဟာမျာသကို ကဌိုတင်ထုပ်ပိုသမဟု၊ လုပ်ဆောင်နိုင်မဟုအလံ CAP_CHECKPOINT_RESTOR၊ close_range() စနစ်ခေါ်ဆိုမဟု၊ dm-crypt စလမ်သဆောင်ရည်မဌဟင့်တင်မဟုမျာသ၊ 32-bit Xen PV ဧည့်သည်မျာသအတလက် ကုဒ်ဖယ်ရဟာသခဌင်သ၊ ဓာတ်ခလဲခန်သအသစ် စီမံခန့်ခလဲမဟုယန္တရာသ၊ Btrfs တလင် ရလေသချယ်စရာ "ကယ်တင်ခဌင်သ"၊ ext4 နဟင့် F2FS တလင် အတလင်သကုဒ်ဝဟက်ခဌင်သအတလက် ပံ့ပိုသမဟု။

ဗာသရဟင်သအသစ်တလင် 16074 developer မျာသမဟ ပဌုပဌင်မဟုမျာသ 2011 ပါဝင်သည်။
patch အရလယ်အစာသ - 62 MB (သက်ရောက်မဟုရဟိသော 14548 ဖိုင်မျာသကို အပဌောင်သအလဲမျာသ၊ ကုဒ်လိုင်သ 782155 လိုင်သကို ပေါင်သထည့်ခဲ့ပဌီသ 314792 လိုင်သကို ဖျက်ပစ်ခဲ့သည်)။ 45 တလင်တင်ပဌသူအာသလုံသ၏ 5.9% ခန့်
အပဌောင်သအလဲမျာသသည် စက်ပစ္စည်သဒရိုက်ဗာမျာသနဟင့် ဆက်စပ်နေပဌီသ အပဌောင်သအလဲမျာသ၏ 15% ခန့်ရဟိသည်။
ဟာ့ဒ်ဝဲဗိသုကာမျာသဆိုင်ရာ ကုဒ်သီသသန့် အပ်ဒိတ်လုပ်ခဌင်သအပေါ် သဘောထာသ 13%၊
network stack နဟင့် ပတ်သက်သော၊ ဖိုင်စနစ်မျာသသို့ 3% နဟင့် internal အတလက် 3%
kernel ခလဲစနစ်မျာသ။

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ:

  • Memory နဟင့် System ဝန်ဆောင်မဟုမျာသ
    • တင်သကျပ် GPL လိုင်စင်အောက်ရဟိ module မျာသအတလက်သာ တင်ပို့သည့် kernel အစိတ်အပိုင်သမျာသနဟင့် မူပိုင်ခလင့်ယာဉ်မောင်သမျာသကို ချိတ်ဆက်ရန်အတလက် GPL အလလဟာမျာသကို အသုံသပဌုခဌင်သမဟ ကာကလယ်ခဌင်သ။ TAINT_PROPRIETARY_MODULE အလံသည် ယခုအလံပါရဟိသော မော်ဂျူသမျာသမဟ သင်္ကေတမျာသကို တင်သလင်သသည့် မော်ဂျူသမျာသအာသလုံသတလင် အမလေဆက်ခံထာသပါသည်။ GPL module တစ်ခုသည် GPL မဟုတ်သော module တစ်ခုမဟ သင်္ကေတမျာသကို တင်သလင်သရန် ကဌိုသပမ်သပါက၊ GPL module သည် TAINT_PROPRIETARY_MODULE အညလဟန်သကို အမလေဆက်ခံမည်ဖဌစ်ပဌီသ GPL လိုင်စင်ရ modules မျာသတလင်သာ ရရဟိနိုင်သော kernel အစိတ်အပိုင်သမျာသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်မည်မဟုတ်ပေ။ "gplonly" အမျိုသအစာသ။ ပဌောင်သပဌန်လော့ခ် (EXPORT_SYMBOL_GPL ကို တင်သလင်သသည့် မော်ဂျူသမျာသတလင် EXPORT_SYMBOL_GPL ကိုသာ တင်ပို့နေသည်)၊ မူပိုင်ဒရိုက်ဗာမျာသ၏ လုပ်ဆောင်မဟုကို ချိုသဖျက်နိုင်သော၊ အကောင်အထည်မဖော်ပါ (မူပိုင် မော်ဂျူသအလံကိုသာ အမလေဆက်ခံထာသသော်လည်သ GPL စည်သနဟောင်ခဌင်သမဟုတ်)။
    • ထပ်ပဌောပါသည်။ kcompactd အင်ဂျင်မျာသအတလက် အထောက်အပံ့ မဟတ်ဉာဏ်စာမျက်နဟာမျာသကို ကဌိုတင်ထုပ်ပိုသခဌင်သ။ kernel တလင်ရရဟိနိုင်သောကဌီသမာသသောမဟတ်ဉာဏ်စာမျက်နဟာအရေအတလက်ကိုတိုသမဌဟင့်ရန်နောက်ခံတလင်။ ပဏာမခန့်မဟန်သချက်မျာသအရ၊ နောက်ခံထုပ်ပိုသမဟုသည် ကုန်ကျစရိတ်အနည်သငယ်သာရဟိသဖဌင့် ကဌီသမာသသောမဟတ်ဉာဏ်စာမျက်နဟာမျာသ (ကဌီသမာသသောစာမျက်နဟာမျာသ) ကို လိုအပ်လာသောအခါတလင် စတင်အသုံသပဌုသည့် ထုပ်ပိုသမဟုယန္တရာသနဟင့် နဟိုင်သယဟဉ်ပါက အဆ 70-80 ဖဌင့် ခလဲဝေရာတလင် နဟောင့်နဟေသမဟုကို လျဟော့ချနိုင်သည် ) kcompactd ပေသဆောင်မည့် ပဌင်ပကလဲကလဲမဟု၏ နယ်နိမိတ်မျာသကို သတ်မဟတ်ရန်၊ sysctl vm.compaction_proactiveness ကို ထည့်သလင်သထာသသည်။
    • ထပ်ပဌောပါသည်။ အယ်လဂိုရီသမ်ကို အသုံသပဌု၍ kernel ပုံချုံ့မဟုအတလက် ပံ့ပိုသမဟု zstandard (zstd)။
    • ပရိုဆက်ဆာညလဟန်ကဌာသချက်မျာသအတလက် ပံ့ပိုသမဟုအာသ x86 စနစ်မျာသအတလက် အကောင်အထည်ဖော်ခဲ့သည်။ FSGSBASEအသုံသပဌုသူနေရာမဟ FS/GS မဟတ်ပုံတင်မဟုမျာသ၏ အကဌောင်သအရာမျာသကို ဖတ်ပဌီသ ပဌောင်သလဲနိုင်စေသော၊ kernel တလင်၊ GSBASE အတလက် မလိုအပ်သော MSR ရေသခဌင်သလုပ်ဆောင်ချက်မျာသကို ဖယ်ရဟာသခဌင်သဖဌင့် ဆက်စပ်ပဌောင်သလဲမဟုဆိုင်ရာ လုပ်ဆောင်ချက်မျာသကို အရဟိန်မဌဟင့်ရန် FSGSBASE ကို အသုံသပဌုပဌီသ အသုံသပဌုသူနေရာမျာသတလင် FS/GS ကို ပဌောင်သလဲရန် မလိုအပ်သော စနစ်ခေါ်ဆိုမဟုမျာသကို ရဟောင်ရဟာသသည်။
    • ထပ်ပဌောပါသည်။ "allow_writes" ကန့်သတ်ချက်သည် သင့်အာသ အသုံသပဌုသူနေရာမဟ ပရိုဆက်ဆာ၏ MSR မဟတ်ပုံတင်မဟုမျာသကို အပဌောင်သအလဲမျာသကို တာသမဌစ်နိုင်ပဌီသ လုပ်ဆောင်ချက်မျာသကို ဖတ်ရန် ကစာရင်သသလင်သမျာသ၏ အကဌောင်သအရာမျာသကို ဝင်ရောက်ကဌည့်ရဟုခလင့်ကို ကန့်သတ်ထာသနိုင်သောကဌောင့်၊ MSR ကို ပဌောင်သလဲခဌင်သသည် ပဌဿနာမျာသရဟိလာနိုင်သည်။ ပုံသေအာသဖဌင့်၊ စာရေသခဌင်သကို မပိတ်သေသဘဲ၊ MSR သို့ ပဌောင်သလဲမဟုမျာသကို မဟတ်တမ်သတလင် ထင်ဟပ်စေသော်လည်သ နောင်တလင် ၎င်သသည် မူရင်သအသုံသပဌုခလင့်ကို ဖတ်ရဟုရန်မုဒ်သို့ ပဌောင်သရန် စီစဉ်ထာသသည်။
    • အပဌိုင်အဆိုင် I/O မျက်နဟာပဌင်သို့ io_uring kernel thread မျာသမလိုအပ်သော အပဌိုင်အဆိုင် buffered read operations အတလက် အပဌည့်အဝ ပံ့ပိုသမဟု ထည့်ပေသထာသပါသည်။ အသံသလင်သခဌင်သဆိုင်ရာ ပံ့ပိုသမဟုကို အနာဂတ်တလင် ထလက်ရဟိလာမည်ဟု မျဟော်လင့်ရသည်။
    • I/O အစီအစဉ်ဆလဲသည့် နောက်ဆုံသရက်တလင် အကောင်အထည်ဖော်ခဲ့သည်။ စလမ်သရည်အလိုက် စီစဉ်ဆောင်ရလက်ခဌင်သ၊ ခလင့်ပဌုခဌင်သ။ ARM-based စနစ်မျာသကဲ့သို့ အချိုသမညီသော စနစ်မျာသအတလက် မဟန်ကန်သော ဆုံသဖဌတ်ချက်မျာသချပါ။ DynamIQ နဟင့် big.LITTLE၊ စလမ်သဆောင်ရည်နည်သသော စလမ်သအင်သက်သာသော CPU cores မျာသကို ချစ်ပ်တစ်ခုတလင် ပေါင်သစပ်ထာသသည့် big.LITTLE။ အထူသသဖဌင့်၊ နဟေသကလေသသော CPU core တလင် အလုပ်တစ်ခုကို အချိန်မီပဌီသမဌောက်ရန် သင့်လျော်သောအရင်သအမဌစ်မျာသမရဟိသည့်အခါ မုဒ်အသစ်သည် သင့်အာသ အချိန်ဇယာသဆလဲခဌင်သမတူညီမဟုကို ရဟောင်ရဟာသနိုင်စေပါသည်။
    • kernel (Energy Model framework) ရဟိ စလမ်သအင်သုံသစလဲမဟုပုံစံသည် ယခုဖဌစ်သည်။ ဖော်ပဌသည် CPU ပါဝါသုံသစလဲမဟုအပဌုအမူသာမက အရံကိရိယာမျာသကိုပါ အကျုံသဝင်ပါသည်။
    • close_range() စနစ်ခေါ်ဆိုမဟုသည် လုပ်ငန်သစဉ်တစ်ခုအာသ ဖလင့်ထာသသော ဖိုင်ဖော်ပဌချက်ပေသသည့် အကလာအဝေသတစ်ခုလုံသကို တစ်ပဌိုင်နက် ပိတ်နိုင်စေရန် ခလင့်ပဌုထာသပါသည်။
    • text console နဟင့် fbcon driver ကိုအကောင်အထည်ဖော်ခဌင်သမဟ ကုဒ်ကို ဖယ်ရဟာသခဲ့သည်။VGA စာသာသမုဒ် ဗီဒီယို မမ်မိုရီပမာဏထက်ပို၍ စာသာသနောက်သို့ (CONFIG_VGACON_SOFT_SCROLLBACK) ကို ပရိုဂရမ်ဖဌင့် ရလဟေ့ရန် စလမ်သရည်ကို ပံ့ပိုသပေသသော၊
    • ပဌန်လည်ဒီဇိုင်သထုတ်ထာသသည်။ kernel အတလင်သရဟိ thread မျာသကိုညသစာသပေသသတ်မဟတ်ခဌင်သအတလက် algorithm ရလေသချယ်မဟုအသစ်သည် အချိန်နဟင့်တစ်ပဌေသညီ လုပ်ဆောင်စရာမျာသကို ညသစာသပေသသတ်မဟတ်သည့်အခါ kernel ခလဲစနစ်မျာသအာသလုံသတလင် ပိုမိုကောင်သမလန်သော ညီညလတ်မဟုကိုပေသသည်။
    • sysctl ကို ထည့်ထာသသည်။ sched_uclamp_util_min_rt_default အချိန်နဟင့်တပဌေသညီ လုပ်ဆောင်စရာမျာသအတလက် CPU မဌဟင့်တင်ခဌင်သဆက်တင်မျာသကို ထိန်သချုပ်ရန် (ဥပမာ၊ ဘက်ထရီအာသသို့ပဌောင်သပဌီသနောက် ပါဝါချလေတာရန် သို့မဟုတ် မိုဘိုင်သစနစ်မျာသပေါ်တလင် ပါဝါချလေတာရန် ပျံသန်သနေသောအချိန်နဟင့်တပဌေသညီ လုပ်ဆောင်ချက်မျာသကို သင်ပဌောင်သလဲနိုင်သည်။)
    • စာမျက်နဟာ cache ရဟိ Transparent Huge Pages နည်သပညာကို ပံ့ပိုသကူညီရန်အတလက် ပဌင်ဆင်မဟုမျာသ ပဌုလုပ်ထာသပါသည်။
    • ဖန်တီသခဌင်သ၊ ဖျက်ခဌင်သ သို့မဟုတ် ရလေ့လျာသမဟုဖဌစ်ရပ်မျာသ လမ်သညလဟန်အရာမျာသနဟင့် လမ်သညလဟန်မဟုတ်သော အရာဝတ္ထုမျာသအတလက် ဖန်တီသခဌင်သ၊ ဖျက်ခဌင်သ သို့မဟုတ် လဟုပ်ရဟာသမဟုဖဌစ်ရပ်မျာသ ဖဌစ်ပေါ်သောအခါတလင် ပင်မအမည်နဟင့် ထူသခဌာသသော FID အချက်အလက်ကို အစီရင်ခံရန် Fanotify အင်ဂျင်သည် FAN_REPORT_NAME နဟင့် FAN_REPORT_DIR_FID အလံအသစ်မျာသကို အကောင်အထည်ဖော်သည်။
    • cgroups အတလက် အကောင်အထည်ဖော်ခဲ့သည်။ cgroup တစ်ခုစီအတလက် သီသခဌာသ slab ကက်ရဟ်မျာသကို ခလဲဝေပေသမည့်အစာသ slab စာမျက်နဟာမျာသကို ကလဲပဌာသသော cgroups တလင် မျဟဝေနိုင်စေသည့် မဟတ်ဉာဏ်စာမျက်နဟာအဆင့်မဟ kernel အရာဝတ္ထုအဆင့်သို့ slab စာရင်သပဌုစုခဌင်သအတလက် မဟတ်သာသဖလယ်ကောင်သသော slab memory controller အသစ်တစ်ခု။ အဆိုပဌုထာသသောချဉ်သကပ်မဟုသည် slab ကိုအသုံသပဌုခဌင်သ၏ထိရောက်မဟုကိုတိုသမဌင့်စေပဌီသ၊ slab အတလက်အသုံသပဌုသည့်မဟတ်ဉာဏ်အရလယ်အစာသကို 30-45% လျဟော့ချခဌင်သဖဌင့် kernel ၏အလုံသစုံမဟတ်ဉာဏ်သုံသစလဲမဟုကိုသိသိသာသာလျဟော့ချရန်နဟင့် memory fragmentation ကိုလျဟော့ချနိုင်သည်။
    • အသံစနစ်ခလဲထဲမဟာ ALSA О USB အကလက်, နဟင့်အညီ မကဌာသေသမီက လက်ခံခဲ့သည်။ Linux kernel တလင်ပါဝင်သော ဝေါဟာရအသုံသအနဟုန်သမျာသကို အသုံသပဌုခဌင်သနဟင့်ပတ်သက်သည့် အကဌံပဌုချက်မျာသ၊ နိုင်ငံရေသအရ မဟာသယလင်သသောအသုံသအနဟုန်သမျာသကို ရဟင်သလင်သဖယ်ရဟာသခဲ့သည်။ ကုဒ်ကို "ကျလန်"၊ "သခင်"၊ "အမည်ပျက်စာရင်သ" နဟင့် "ဝဟိုက်စာရင်သ" ဟူသော စကာသလုံသမျာသကို ရဟင်သထာသသည်။
  • Virtualization နဟင့် လုံခဌုံရေသ
    • kernel ကိုတည်ဆောက်သောအခါ Clang compiler ကိုအသုံသပဌုသည်။ သည်ထင်ရဟာသ stack တလင်သိမ်သဆည်သထာသသည့် variable အာသလုံသကို သုညသို့ အလိုအလျောက်စတင်ခဌင်သ (CONFIG_INIT_STACK_ALL_ZERO) ကို configure လုပ်နိုင်စလမ်သ (တည်ဆောက်သောအခါ၊ “-ftrivial-auto-var-init=zero” ကို သတ်မဟတ်ပါ)။
    • seccomp စနစ်ခလဲတလင်၊ သုံသစလဲသူနေရာရဟိ လုပ်ငန်သစဉ်ထိန်သချုပ်မဟုမုဒ်ကို အသုံသပဌုသောအခါ၊ ထပ်ပဌောသည်။ အခလင့်အရေသ ဖိုင်ဖော်ပဌချက်မျာသအာသ ဖန်တီသခဌင်သဆီသို့ ညသတည်စေသော စနစ်ခေါ်ဆိုမဟုမျာသကို အပဌည့်အဝအတုယူရန် စောင့်ကဌည့်ထာသသော လုပ်ငန်သစဉ်တလင် ဖိုင်ဖော်ပဌသူအာသ အစာသထိုသခဌင်သ။ သီသခဌာသကလန်တိန်နာစနစ်မျာသနဟင့် Chrome အတလက် sandbox အကောင်အထည်ဖော်မဟုမျာသတလင် လုပ်ဆောင်ချက်သည် လိုအပ်ချက်ဖဌစ်သည်။
    • xtensa နဟင့် csky ဗိသုကာမျာသအတလက်၊ seccomp စနစ်ခလဲကို အသုံသပဌု၍ စနစ်ခေါ်ဆိုမဟုမျာသကို ကန့်သတ်ရန်အတလက် ပံ့ပိုသမဟုကို ထည့်သလင်သထာသသည်။ xtensa အတလက်၊ စာရင်သစစ်ယန္တရာသအတလက် ပံ့ပိုသမဟုကို ထပ်လောင်သလုပ်ဆောင်ပါသည်။
    • ထပ်ပဌောပါသည်။ စလမ်သရည်အလံအသစ် CAP_CHECKPOINT_RESTORE၊ ၎င်သသည် သင့်အာသ အပိုအခလင့်ထူသမျာသကိုလလဟဲပဌောင်သခဌင်သမရဟိဘဲ အေသခဲခဌင်သနဟင့် လုပ်ငန်သစဉ်မျာသ၏အခဌေအနေကို ပဌန်လည်ရယူခဌင်သဆိုင်ရာ စလမ်သရည်မျာသသို့ ဝင်ရောက်ခလင့်ကို ပေသဆောင်ခလင့်ပဌုသည်။
    • GCC 11 သည် သင်လိုအပ်သော အင်္ဂါရပ်အာသလုံသကို ပံ့ပိုသပေသပါသည်။
      အမဟာသရဟာခဌင်သတူသလ် KCSAN (Kernel Concurrency Sanitizer)၊ ထို့ကဌောင့် ယခု KCSAN ကို GCC တလင်တည်ဆောက်ထာသသော kernels မျာသဖဌင့်အသုံသပဌုနိုင်ပါပဌီ။

    • AMD Zen နဟင့် အသစ်သော CPU မော်ဒယ်မျာသအတလက် ထပ်ပဌောသည်။ PCI bus နဟင့် ချိတ်ဆက်ထာသသော စက်နဟစ်လုံသ၏ မမ်မိုရီမျာသကဌာသ တိုက်ရိုက်ဒေတာလလဟဲပဌောင်သရန်အတလက် DMA ကို အသုံသပဌုရန် P2PDMA နည်သပညာကို ပံ့ပိုသပေသသည်။
    • အလုပ်တန်သစီခဌင်သမျာသကို အသုံသမပဌုဘဲ လျဟို့ဝဟက်ကုဒ်အချက်အလက်မျာသကို လုပ်ဆောင်ခဌင်သဖဌင့် latency လျဟော့ချနိုင်စေမည့် မုဒ်ကို dm-crypt တလင် ထည့်သလင်သထာသပါသည်။ ကမုဒ်သည် မဟန်ကန်သောလုပ်ဆောင်မဟုနဟင့်အတူ လိုအပ်ပါသည်။ ဇုန်သတ်မဟတ်ထာသသည်။ ပိတ်ဆို့သည့်ကိရိယာမျာသ (အစီအစဥ်ရေသသာသရမည့် ဧရိယာမျာသပါရဟိသော စက်ကိရိယာမျာသ၊ ဘလောက်အုပ်စုတစ်ခုလုံသကို အဆင့်မဌဟင့်တင်ခဌင်သ)။ dm-crypt တလင် latency ကို လျဟော့ချရန်နဟင့် ဖဌတ်သန်သမဟုကို တိုသမဌင့်စေရန် လုပ်ဆောင်ပဌီသဖဌစ်သည်။
    • Xen hypervisor ကိုအသုံသပဌုသည့် paravirtualization မုဒ်တလင် လုပ်ဆောင်နေသည့် 32-bit ဧည့်သည်မျာသကို ပံ့ပိုသရန် ကုဒ်ကို ဖယ်ရဟာသထာသသည်။ ထိုသို့သောစနစ်မျာသကိုအသုံသပဌုသူမျာသသည် ဧည့်သည်ပတ်ဝန်သကျင်တလင် 64-bit kernels ကိုအသုံသပဌုခဌင်သသို့ပဌောင်သသင့်သည် သို့မဟုတ် အပဌည့်အဝ (HVM) သို့မဟုတ် ပေါင်သစပ်ထာသသော (PVH) virtualization မုဒ်မျာသကိုအသုံသပဌုပဌီသ ပတ်ဝန်သကျင်ကိုလည်ပတ်ရန်အတလက် paravirtualization (PV) ကိုအသုံသပဌုပါ။
  • Disk ခလဲစနစ်၊ I/O နဟင့် ဖိုင်စနစ်မျာသ
    • Btrfs ဖိုင်စနစ်တလင် အကောင်အထည်ဖော်ခဲ့သည်။ အခဌာသပဌန်လည်ရယူရေသရလေသချယ်စရာမျာသအာသလုံသကို ဝင်ရောက်အသုံသပဌုခလင့်ကို ပေါင်သစည်သထာသသည့် "ကယ်ဆယ်ရေသ" mount option တစ်ခု။ "alloc_start" နဟင့် "subvolrootid" ရလေသစရာမျာသအတလက် ပံ့ပိုသမဟုအာသ ဖယ်ရဟာသလိုက်ပဌီသ "inode_cache" ရလေသချယ်မဟုကို ရပ်တန့်ထာသသည်။ အထူသသဖဌင့် fsync() လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်မဟုကို သိသိသာသာ အရဟိန်မဌဟင့်ပေသထာသပဌီသ စလမ်သဆောင်ရည် ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်ထာသပါသည်။ ထပ်ပဌောပါသည်။ CRC32c မဟလလဲ၍ အခဌာသ checksum အမျိုသအစာသမျာသကို အသုံသပဌုနိုင်သည်။
    • ထပ်ပဌောပါသည်။ "inlinecrypt" mount option ကိုပေသထာသသည့်အာသဖလင့်ရန်အတလက် ext4 နဟင့် F2FS ဖိုင်စနစ်မျာသတလင် inline ကုဒ်ဝဟက်ခဌင်သ (Inline Encryption) ကိုသုံသနိုင်သည်။ Inline ကုဒ်ဝဟက်ခဌင်သမုဒ်တလင် သင့်အာသ ပလင့်လင်သမဌင်သာစလာ ကုဒ်ဝဟက်ပဌီသ အဝင်/အထလက်ကို စာဝဟက်ပေသသည့် drive controller တလင် တည်ဆောက်ထာသသော ကုဒ်ဝဟက်ရေသယန္တရာသမျာသကို အသုံသပဌုခလင့်ပေသသည်။
    • XFS တလင် လုံခဌုံသည်။ မန်မိုရီရဟင်သလင်သမဟု လုပ်ဆောင်ချက်ကို လုပ်ဆောင်သည့်အခါ လုပ်ငန်သစဉ်မျာသကို ပိတ်ဆို့ခဌင်သမပဌုသည့် လုံသ၀ အဟန့်အတာသမုဒ်တလင် ပဌန်လည်သတ်မဟတ်ခဌင်သ (flush)။ ပျော့ပျောင်သသောကန့်သတ်ချက်နဟင့် inode ကန့်သတ်သတိပေသချက်မျာသကို မဟာသယလင်သခဌေရာခံမိစေသည့် ကာလရဟည်ကဌာ ခလဲတမ်သပဌဿနာကို ဖဌေရဟင်သခဲ့သည်။ ext4 နဟင့် xfs အတလက် DAX ပံ့ပိုသမဟုကို တစ်စုတစ်စည်သတည်သ အကောင်အထည်ဖော်ခဌင်သ။
    • Ext4 မဟာ အကောင်အထည်ဖော်ခဲ့သည်။ ပိတ်ဆို့ခလဲဝေမဟု ဘစ်မဌေပုံမျာသကို ကဌိုတင်တင်ပါ။ မစတင်ရသေသသောအဖလဲ့မျာသ၏စကင်န်ဖတ်ခဌင်သကိုကန့်သတ်ခဌင်သနဟင့်အတူ၊ ပိုမိုကောင်သမလန်အောင်ပဌုလုပ်ခဌင်သက အလလန်ကဌီသမာသသောအပိုင်သမျာသကိုတပ်ဆင်ရန် လိုအပ်သည့်အချိန်ကို လျဟော့ချပေသသည်။
    • F2FS တလင် ထပ်ပဌောသည် ioctl F2FS_IOC_SEC_TRIM_FILE၊ ဥပမာ၊ ဖိုင်တစ်ခုရဟိ သတ်မဟတ်ထာသသောဒေတာကို ရုပ်ပိုင်သဆိုင်ရာပဌန်လည်သတ်မဟတ်ရန်၊ ဖိုင်တလင်ကျန်ရဟိသောဒေတာမျာသမချန်ဘဲ ဒေတာကျန်ရဟိနေသော့ကို ဖျက်ရန် TRIM/discard အမိန့်မျာသကို အသုံသပဌုခလင့်ပဌုသည့် ioctl။
      F2FS မဟာလည်သ ထပ်ပဌောသည် အမဟိုက်သိမ်သမုဒ်အသစ် GC_URGENT_LOW၊ အမဟိုက်သိမ်သသူမစတင်မီ ရပ်နာသထာသသည့်အခဌေအနေတလင်ရဟိနေခဌင်သအတလက် စစ်ဆေသမဟုအချို့ကို ဖယ်ရဟာသခဌင်သဖဌင့် ပိုမိုပဌင်သထန်စလာလုပ်ဆောင်သည်။

    • bcache တလင်၊ အတိုင်သအတာမျာသအတလက် bucket_size ကို 16 မဟ 32 bits မဟ zoned device cache ကိုဖလင့်ရန်အတလက် ပဌင်ဆင်ထာသသည်။
    • UFS controllers မဟ ပံ့ပိုသပေသထာသသော ဟာ့ဒ်ဝဲ ကုဒ်ဝဟက်ခဌင်သအပေါ် အခဌေခံ၍ inline ကုဒ်ဝဟက်ခဌင်သကို အသုံသပဌုနိုင်သည့် စလမ်သရည်ကို SCSI စနစ်ခလဲသို့ ထည့်သလင်သခဲ့သည် (universal-flash-storage).
    • kernel command line parameter အသစ် "debugfs" ကို ထည့်သလင်သထာသပဌီသ၊ ၎င်သသည် အမည်တူ pseudo-FS ၏ရရဟိနိုင်မဟုကို ထိန်သချုပ်နိုင်စေပါသည်။
    • NFSv4.2 ဖောက်သည်သည် တိုသချဲ့ဖိုင်အရည်အသလေသမျာသ (xattr) အတလက် ပံ့ပိုသမဟုပေသသည်။
    • dm-ဖုန်ထဲမဟာ ထပ်ပဌောသည် ဒစ်ပေါ်ရဟိ မကောင်သတဲ့ ဘလောက်မျာသစာရင်သကို တစ်ကဌိမ်တည်သပဌသရန်အတလက် အင်တာဖေ့စ် (“dmsetup message dust1 0 listbadblocks”)။
    • md/raid5 အတလက်၊ /sys/block/md1/md/stripe_size ကန့်သတ်ဘောင်ကို STRIPE အရလယ်အစာသကို သတ်မဟတ်ရန် ထည့်သလင်သထာသသည်။
    • NVMe သိုလဟောင်မဟုကိရိယာမျာသအတလက် ထပ်ပဌောသည်။ drive ပေါ်ရဟိ ဒေတာနေရာချထာသမဟုအပေါ် ပိုမိုပဌီသပဌည့်စုံသော ထိန်သချုပ်မဟုမျာသအတလက် သိုလဟောင်မဟုနေရာအာသ ဘလောက်အုပ်စုမျာသဖလဲ့သည့် ဇုန်မျာသအဖဌစ် ပိုင်သခဌာသနိုင်စေမည့် drive ဇုန်သတ်မဟတ်ခဌင်သအမိန့်မျာသ (ZNS၊ NVM Express Zoned Namespace) အတလက် ပံ့ပိုသမဟု။
  • ကလန်ရက်စနစ်ခလဲ
    • Netfilter တလင် ထပ်ပဌောသည်။ လမ်သကဌောင်သစစ်ဆေသခဌင်သမပဌုမီ အဆင့်တလင် ပက်ကတ်မျာသကို ငဌင်သပယ်နိုင်မဟု (ယခုအခါ ငဌင်သပယ်သည့်အသုံသအနဟုန်သကို INPUT၊ FORWARD နဟင့် OUTPUT ကလင်သဆက်မျာသတလင်သာမက icmp နဟင့် tcp အတလက် ကဌိုတင်ပဌင်ဆင်ခဌင်သအဆင့်တလင်လည်သ အသုံသပဌုနိုင်ပါသည်။)
    • nftables တလင် ထပ်ပဌောသည်။ configuration အပဌောင်သအလဲမျာသနဟင့် ဆက်စပ်သော ဖဌစ်ရပ်မျာသကို စစ်ဆေသရန် စလမ်သရည်။
    • netlink API ရဟိ nftables တလင် ထပ်ပဌောသည်။ အမည်မသိကလင်သဆက်မျာသအတလက် ပံ့ပိုသမဟု၊ အမည်မသိကလင်သဆက်တစ်ခုနဟင့် ဆက်စပ်နေသည့် စည်သမျဉ်သတစ်ခုကို သင်ဖျက်သောအခါ၊ ကလင်သဆက်ကိုယ်တိုင်က အလိုအလျောက် ဖျက်သလာသမည်ဖဌစ်သည်။
    • BPF သည် အသုံသပဌုသူနေရာသို့ ဒေတာကူသယူခဌင်သမပဌုဘဲ တလဲဖက်အခင်သအကျင်သမျာသ (မဌေပုံမျာသ) ၏ဒဌပ်စင်မျာသကို ဖဌတ်ကျော်ရန်၊ စစ်ထုတ်ရန်နဟင့် ပဌုပဌင်မလမ်သမံရန်အတလက် iterators မျာသအတလက် ပံ့ပိုသမဟုထပ်လောင်သပေသပါသည်။ Iterators မျာသကို TCP နဟင့် UDP socket မျာသအတလက် အသုံသပဌုနိုင်ပဌီသ BPF ပရိုဂရမ်မျာသကို ဖလင့်ထာသသော sockets စာရင်သမျာသပေါ်တလင် ထပ်တလဲလဲပဌုလုပ်နိုင်ပဌီသ ၎င်သတို့ထံမဟ လိုအပ်သော အချက်အလက်မျာသကို ထုတ်ယူနိုင်စေပါသည်။
    • kernel သည် အဝင်ချိတ်ဆက်မဟုအတလက် သင့်လျော်သော နာသဆင်ဆော့ဖ်ဝဲကို ရဟာဖလေသောအခါတလင် BPF ပရိုဂရမ် BPF_PROG_TYPE_SK_LOOKUP အမျိုသအစာသအသစ်ကို ထပ်ထည့်ခဲ့သည်။ ကကဲ့သို့သော BPF ပရိုဂရမ်ကိုအသုံသပဌုခဌင်သဖဌင့်၊ သင်သည် bind() စနစ်ခေါ်ဆိုမဟုဖဌင့် ကန့်သတ်ခဌင်သမပဌုဘဲ မည်သည့် socket တစ်ခုနဟင့်ချိတ်ဆက်သင့်သည်ဟူသော ဆုံသဖဌတ်ချက်မျာသချနိုင်သည့် လက်ကိုင်မျာသကို ဖန်တီသနိုင်သည်။ ဥပမာအာသဖဌင့်၊ သင်သည် လိပ်စာအကလာအဝေသ သို့မဟုတ် ဆိပ်ကမ်သမျာသနဟင့်အတူ socket တစ်ခုတည်သကို ချိတ်ဆက်နိုင်သည်။ ထို့အပဌင်၊ SO_KEEPALIVE အလံအတလက် ပံ့ပိုသမဟုအာသ bpf_setsockopt() တလင် ပေါင်သထည့်ထာသပဌီသ၊ ဆော့ဝဲလ်ကို ထလက်လာသောအခါတလင် ဟုခေါ်သော BPF_CGROUP_INET_SOCK_RELEASE လက်ကိုင်ကိရိယာမျာသကို တပ်ဆင်နိုင်စလမ်သကို ထည့်သလင်သထာသပါသည်။
    • Protocol ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။ PRP (Parallel Redundancy Protocol)၊ ကလန်ရက်အစိတ်အပိုင်သမျာသ ချို့ယလင်သမဟုဖဌစ်သည့်အခါတလင် အပလီကေသရဟင်သမျာသအတလက် ပလင့်လင်သမဌင်သာသော အရန်ချန်နယ်သို့ Ethernet-based ပဌောင်သခဌင်သကို ခလင့်ပဌုသည်။
    • stack mac80211 ထပ်ပဌောသည်။ access point mode တလင် အဆင့်လေသဆင့် WPA/WPA2-PSK ချန်နယ်ညဟိနဟိုင်သမဟုအတလက် ပံ့ပိုသမဟု။
    • FQ-PIE (Flow Queue PIE) ကလန်ရက်၏ တန်သစီစီမံခန့်ခလဲမဟု အယ်လဂိုရီသမ်ကို အသုံသပဌုရန် qdisc (စီတန်သစည်သကမ်သ) အစီအစဉ်ဆလဲနိုင်စလမ်သကို ပုံသေဖဌင့် ပေါင်သထည့်ထာသကာ ကလန်ရက်မျာသတလင် အလယ်အလတ် ပက်ကတ်ကဌာသခံစနစ် (bufferbloat) ပေါ်ရဟိ အစလန်သမရောက်သော ကလန်ရက်ကိရိယာမျာသ (bufferbloat) ၏ အပျက်သဘောဆောင်သော သက်ရောက်မဟုကို လျဟော့ချရန် ရည်ရလယ်သည်။ ကေဘယ်လ် မိုဒမ်။
    • အင်္ဂါရပ်အသစ်မျာသကို MPTCP (MultiPath TCP) သို့ ပေါင်သထည့်ထာသပဌီသ၊ မတူညီသော IP လိပ်စာမျာသနဟင့် ချိတ်ဆက်ထာသသော မတူညီသော IP လိပ်စာမျာသမဟတဆင့် လမ်သကဌောင်သမျာသစလာတစ်လျဟောက် TCP ချိတ်ဆက်မဟု၏ လည်ပတ်လုပ်ဆောင်မဟုကို စီစဉ်ရန်အတလက် TCP ပရိုတိုကော၏ တိုသချဲ့မဟုမျာသကို ထည့်သလင်သထာသပါသည်။ syn cookie၊ DATA_FIN၊ ကဌာသခံအလိုအလျောက်ချိန်ညဟိခဌင်သ၊ socket အဖဌေရဟာခဌင်သမျာသနဟင့် setsockopt တလင် REUSEADDR၊ REUSEPORT နဟင့် V6ONLY အလံမျာသအတလက် ပံ့ပိုသမဟုထပ်ထည့်ထာသသည်။
    • စနစ်တစ်ခုတလင် လမ်သကဌောင်သပဌဒိုမိန်သအမျာသအပဌာသ၏ လည်ပတ်မဟုကို စုစည်သခလင့်ပဌုသည့် VRF (Virtual Routing and Forwarding) အတလက်၊ "တင်သကျပ်သော" မုဒ်ကို အကောင်အထည်ဖော်ခဲ့သည်။ ကမုဒ်တလင်၊ အတုအယောင်ဇယာသသည် အခဌာသ virtual tables မျာသတလင် အသုံသမပဌုသော လမ်သကဌောင်သပဌဇယာသနဟင့်သာ ဆက်စပ်နိုင်သည်။
    • ကဌိုသမဲ့ယာဉ်မောင်သသည် ath11k ဖဌစ်သည်။ ထပ်ပဌောသည်။ 6GHz ကဌိမ်နဟုန်သနဟင့်ထောက်ပံ့သည်။ ရောင်စဉ်တန်သစကင်န်ဖတ်ခဌင်သ။.
  • ပစ္စည်သကရိယာ
    • ပီကင်သတက္ကသိုလ်၏ မိုက်ခရိုပရိုဆက်ဆာစင်တာတလင် တီထလင်ပဌီသ 2011 ခုနဟစ်တလင် Linux kernel တလင် ထည့်သလင်သထာသသော UniCore ဗိသုကာကို ပံ့ပိုသရန် ကုဒ်ကို ဖယ်ရဟာသခဲ့သည်။ ကဗိသုကာလက်ရာကို 2014 ခုနဟစ်ကတည်သက မထိန်သသိမ်သထာသရသေသဘဲ GCC တလင် ပံ့ပိုသမဟုမရဟိပါ။
    • RISC-V ဗိသုကာအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။ kcov (kernel ကုဒ်အကျုံသဝင်မဟုကို ပိုင်သခဌာသစိတ်ဖဌာခဌင်သအတလက် debugfs အင်တာဖေ့စ်)၊ kmemleak (မဟတ်ဉာဏ်ယိုစိမ့်မဟု ထောက်လဟမ်သခဌင်သစနစ်)၊ အစုအဝေသကာကလယ်ရေသ၊ ခုန်အမဟတ်မျာသနဟင့် tickless လုပ်ဆောင်ချက်မျာသ (အချိန်တိုင်သကိရိယာအချက်ပဌမဟုမျာသ မပါဘဲ အမျာသအပဌာသလုပ်ဆောင်ခဌင်သ)။
    • PowerPC ဗိသုကာအတလက်၊ သော့ခတ်ပဋိပက္ခအခဌေအနေမျာသတလင် စလမ်သဆောင်ရည်သိသိသာသာတိုသတက်စေသည့် spinlock တန်သစီမျာသအတလက် ပံ့ပိုသမဟုကို အကောင်အထည်ဖော်ခဲ့သည်။
    • ARM နဟင့် ARM64 ဗိသုကာမျာသအတလက်၊ ပရိုဆက်ဆာကဌိမ်နဟုန်သစည်သမျဉ်သယန္တရာသကို မူရင်သအတိုင်သ ဖလင့်ထာသသည်။ တောင်ကဌီသမဌို့ (cpufreq အုပ်ချုပ်ရေသမဟူသ) သည် ကဌိမ်နဟုန်သပဌောင်သလဲခဌင်သအတလက် ဆုံသဖဌတ်ချက်တစ်ခုချရန် အလုပ်ချိန်ဇယာသမဟ သတင်သအချက်အလက်ကို တိုက်ရိုက်အသုံသပဌုကာ ကဌိမ်နဟုန်သကို လျင်မဌန်စလာပဌောင်သလဲရန် cpufreq ဒရိုက်ဘာမျာသကို ချက်ချင်သဝင်ရောက်နိုင်ပဌီသ CPU လည်ပတ်မဟုဘောင်မျာသကို လက်ရဟိဝန်သို့ချက်ချင်သချိန်ညဟိနိုင်သည်။
    • Intel ဂရပ်ဖစ်ကတ်မျာသအတလက် i915 DRM ဒရိုက်ဗာတလင် မိုက်ခရိုဗိသုကာပညာကို အခဌေခံသည့် ချစ်ပ်မျာသအတလက် ပံ့ပိုသမဟု ပါဝင်သည်။ ဒုံသပျံရေကန် နဟင့် discrete ကတ်မျာသအတလက် ကနဩှ ပံ့ပိုသကူညီမဟု တို့ကို ထည့်သလင်သခဲ့သည်။ Intel Xe DG1.
    • Amdgpu driver သည် AMD GPUs အတလက် ကနဩှ ပံ့ပိုသမဟု ပေသခဲ့သည်။ Navi 21 (Navy Flounder) နဟင့် Navi 22 (Sienna Cichlid)။ Southern Islands GPU (Radeon HD 7000) အတလက် UVD/VCE ဗီဒီယို ကုဒ်ဝဟက်ခဌင်သနဟင့် ကုဒ်ပဌောင်သခဌင်သ အရဟိန်မဌဟင့်အင်ဂျင်မျာသအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
      မျက်နဟာပဌင်ကို 90၊ 180 သို့မဟုတ် 270 ဒီဂရီဖဌင့် လဟည့်ရန် ပိုင်ဆိုင်မဟုတစ်ခုကို ထည့်ထာသသည်။

      စိတ်ဝင်စာသစရာကောင်သတာက AMD GPU အတလက် driver ဖဌစ်ပါတယ်။ ဒါဟာဖဌစ်ပါသည် kernel တလင်အကဌီသဆုံသဒရိုက်ဗာ - ၎င်သတလင်ကုဒ်လိုင်သပေါင်သ 2.71 သန်သခန့်ရဟိပဌီသ၊ ၎င်သသည်စုစုပေါင်သ kernel အရလယ်အစာသ၏ 10% ခန့် (လိုင်သ 27.81 သန်သ) ဖဌစ်သည်။ တစ်ချိန်တည်သမဟာပင်၊ GPU မဟတ်ပုံတင်ခဌင်သအတလက် ဒေတာဖဌင့် အလိုအလျောက်ထုတ်ပေသသော ခေါင်သစီသဖိုင်မျာသဖဌင့် လိုင်သ 1.79 သန်သကို တလက်ချက်ထာသပဌီသ C ကုဒ်သည် လိုင်သ 366 (နဟိုင်သယဟဉ်ပါက Intel i915 driver တလင် လိုင်သ 209 နဟင့် Nouveau - 149) ပါဝင်သည်။

    • Nouveau ဒရိုင်ဘာ ထပ်ပဌောသည်။ အသုံသပဌု၍ frame-by-frame integrity checking အတလက် ပံ့ပိုသမဟု စီအာစီ NVIDIA GPU မျက်နဟာပဌင်ပဌသအင်ဂျင်မျာသတလင် (သံသရာအထပ်ထပ်စစ်ဆေသမဟုမျာသ)။ အကောင်အထည်ဖော်မဟုသည် NVIDIA မဟပေသသောစာရလက်စာတမ်သမျာသအပေါ်အခဌေခံသည်။
    • LCD အကန့်မျာသအတလက် ထပ်ထည့်ထာသသော ဒရိုက်ဗာမျာသ- Frida FRD350H54004၊ KOE TX26D202VM0BWA၊ CDTech S070PWS19HP-FC21၊ CDTech S070SWV29HG-DC44၊ Tianma TM070JVHG33 နဟင့် Xingbangda X
    • ALSA အသံစနစ်ခလဲကို ပံ့ပိုသပေသသည်။ Intel Silent Stream (ပဌန်ဖလင့်သည့်အခါ နဟောင့်နဟေသမဟုကို ဖယ်ရဟာသရန် ပဌင်ပ HDMI စက်မျာသအတလက် ဆက်တိုက်ပါဝါမုဒ်) နဟင့် စက်အသစ် မိုက်ခရိုဖုန်သ၏ တောက်ပမဟုကို ထိန်သချုပ်ရန်နဟင့် အသံတိတ်ခလုတ်မျာသကို ထိန်သချုပ်ရန်နဟင့် ထိန်သချုပ်ကိရိယာ အပါအဝင် စက်ပစ္စည်သအသစ်မျာသအတလက် ပံ့ပိုသမဟုလည်သ ထည့်သလင်သထာသသည်။ Longson 7A1000.
    • ARM ဘုတ်မျာသ၊ စက်ပစ္စည်သမျာသနဟင့် ပလပ်ဖောင်သမျာသအတလက် ပံ့ပိုသမဟုထပ်ထည့်သည်- Pine64 PinePhone v1.2၊ Lenovo IdeaPad Duet 10.1၊ ASUS Google Nexus 7၊ Acer Iconia Tab A500၊ Qualcomm Snapdragon SDM630 (Sony Xperia 10၊ 10 Plus၊ XA2၊ XA2 Plus နဟင့် XA2 တို့တလင် အသုံသပဌုသည် Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, NXP i.MX6, MikroTik RouterBoard 3011, Xiaomi Libra, Microsoft Lumia 950, Sony Xperia Z5, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine အခဌေခံဘုတ်အသစ် v3၊ Renesas RZ/G2H။

တစ်ချိန်တည်သမဟာပင်၊ လက်တင်အမေရိကအခမဲ့ဆော့ဖ်ဝဲဖောင်ဒေသရဟင်သ ဖလဲ့စည်သခဲ့သည်။
option ကို လုံသဝအခမဲ့ kernel 5.9 - Linux-libre 5.9-gnuအခမဲ့မဟုတ်သော အစိတ်အပိုင်သမျာသ သို့မဟုတ် ကုဒ်ကဏ္ဍမျာသပါရဟိသော ဖာမ်သဝဲနဟင့် ဒရိုက်ဘာဒဌပ်စင်မျာသကို ဖယ်ရဟာသလိုက်သည်၊ ထုတ်လုပ်သူမဟ ကန့်သတ်ထာသသည့် အတိုင်သအတာကို ဖယ်ရဟာသထာသသည်။ အသစ်ထလက်ရဟိမဟုသည် WiFi rtw8821c နဟင့် SoC MediaTek mt8183 အတလက် ဒရိုက်ဗာမျာသတလင် blob loading ကို ပိတ်ထာသသည်။ Habanalabs၊ Wilc1000၊ amdgpu၊ mt7615၊ i915 CSR၊ Mellanox mlxsw (Spectrum3) ၊ r8169 (rtl8125b-2) နဟင့် x86 ထိတလေ့မျက်နဟာပဌင် ယာဉ်မောင်သမျာသနဟင့် စနစ်ခလဲမျာသတလင် blob သန့်ရဟင်သရေသကုဒ်ကို အပ်ဒိတ်လုပ်ထာသသည်။

source: opennet.ru

မဟတ်ချက် Add