Ukukhutshwa kwe-kernel ye-Linux 5.14

Emva kweenyanga ezimbini zophuhliso, uLinus Torvalds ubonise ukukhululwa kweLinux kernel 5.14. Phakathi kwezona nguqu ziphawulekayo: i-quotactl_fd () entsha kunye ne-memfd_secret () iifowuni zenkqubo, ukususwa kwe-ide kunye nabaqhubi abaluhlaza, umlawuli omtsha we-I/O ophambili weqela, i-SCHED_CORE imodi yokucwangcisa umsebenzi, izibonelelo zokudala abalayishi beprogram ye-BPF eqinisekisiweyo.

Uguqulelo olutsha lubandakanya ukulungiswa kwe-15883 ukusuka kubaphuhlisi be-2002, ubukhulu be-patch yi-69 MB (utshintsho oluchaphazelekayo lweefayile ze-12580, i-861501 imigca yekhowudi yongezwa, i-321654 imigca yacinywa). Ngokumalunga ne-47% yazo zonke iinguqu ezifakwe kwi-5.14 zihambelana nabaqhubi besixhobo, malunga ne-14% yeenguqu zihambelana nokuhlaziya ikhowudi ethile kwi-architectures ye-hardware, i-13% inxulumene ne-stack networking stack, i-3% inxulumene neenkqubo zefayile, kunye ne-3% zinxulumene ne-kernel yangaphakathi kwiindlela ezisezantsi.

Iinguqulelo eziphambili:

  • Inkqubo engaphantsi kweDisk, I/O kunye neeNkqubo zeFayile
    • Umlawuli omtsha we-I / O we-priority uphunyeziwe kumaqela, i-rq-qos, enokulawula ukuqhutyelwa phambili kwezicelo zokuvala izixhobo ezenziwe ngamalungu eqela ngalinye. Inkxaso entsha yolawulo oluphambili yongezwe kwi-mq-deadline I/O scheduler.
    • Inkqubo yefayile ye-ext4 isebenzisa umyalelo omtsha we-ioctl, EXT4_IOC_CHECKPOINT, onyanzelisa zonke iintengiselwano ezisalindileyo ukusuka kwijenali kunye nezithinteli ezinxulumene nazo ukuba zigungxulwe kwidisk, kwaye iphinda ibhale ngaphezulu indawo esetyenziswa yijenali kwindawo yokugcina. Utshintsho lwalungiswa njengenxalenye yenyathelo lokuthintela ukuvuza kolwazi kwiinkqubo zeefayile.
    • Ukulungiswa kokusebenza kwenziwe kwii-Btrfs: ngokususa ukugawulwa ngokungeyomfuneko kweempawu ezongeziweyo ngexesha lokwenziwa kwe-fsync, ukusebenza okunzulu okuneempawu ezongeziweyo kunyuke ukuya kuthi ga kwi-17%. Ukongeza, xa usenza imisebenzi yokutrima engachaphazeli imilinganiselo, ulungelelwaniso olupheleleyo luvaliwe, olunciphise ixesha lokusebenza nge-12%. Ummiselo wongezwe kwii-sysfs ukunciphisa umda we-I/O xa ujonga iFS. Kongezwe iifowuni ze-ioctl ukurhoxisa uhlengahlengiso kunye nokucima ukusebenza kwesixhobo.
    • Kwi-XFS, ukuphunyezwa kwe-cache ye-buffer kuye kwayilwa ngokutsha, etshintshelwe kunikezelo lwamaphepha ememori kwimowudi yebhetshi. Ukuphucula ukusebenza kakuhle kwe-cache.
    • I-F2FS yongeza inketho yokusebenza kwimodi yokufunda kuphela kwaye isebenzise imodi ye-block cache ecinezelweyo (compress_cache) ukuphucula ukusebenza kokufunda okungahleliwe. Inkxaso iphunyeziwe ukucinezela iifayile ezifakwe kwinkumbulo kusetyenziswa umsebenzi we mmap (). Ukuvala ngokukhetha ucinezelo lwefayile esekwe kwimaski, kucetyiswe ukhetho olutsha lokunyuswa kwe-nocompress.
    • Umsebenzi wenziwe kumqhubi we-exFAT ukuphucula ukuhambelana nokugcinwa kwekhamera yedijithali.
    • Kongezwe i-quotactl_fd() umnxeba wenkqubo, ekuvumela ukuba ulawule umlinganiselo kungekuphela ngefayile yesixhobo esikhethekileyo, kodwa ngokuchaza inkcazo yefayile enxulunyaniswa nesixokelelwano sefayile esetyenziselwa yona umlinganiselo.
    • Abaqhubi bakudala bezixhobo zebhloko ezinojongano lwe-IDE basusiwe kwi kernel, kudala bemkelwa indawo yi libata subsystem.
    • Umqhubi "oluhlaza" ususiwe kwi-kernel, enikezela ukufikelela okungathintekiyo kwizixhobo zebhlokhi nge-/dev/raw interface. Lo msebenzi kudala uphunyeziwe kwizicelo usebenzisa i O_DIRECT iflegi.
  • Iinkonzo zememori kunye nenkqubo
    • Umcwangcisi wemisebenzi usebenzisa indlela entsha yokucwangcisa, SCHED_CORE, ekuvumela ukuba ulawule ukuba zeziphi iinkqubo ezinokwenziwa kunye kundoqo we-CPU efanayo. Inkqubo nganye inokwabelwa isichongi secookie esichaza umda wokuthembana phakathi kweenkqubo (umzekelo, ezizezomsebenzisi omnye okanye isikhongozeli). Xa uququzelela ukuphunyezwa kwekhowudi, umcwangcisi unokuqinisekisa ukuba i-CPU enye ingundoqo yabelwana kuphela phakathi kweenkqubo ezinxulumene nomnini ofanayo, ezinokuthi zisetyenziswe ukuvala uhlaselo oluthile lweSpecter ngokuthintela imisebenzi ethembekileyo nengathembekanga ekusebenzeni kwintambo efanayo ye-SMT (Hyper Threading) .
    • Kwiqela, inkxaso yomsebenzi wokubulala iphunyeziwe, ekuvumela ukuba ubulale zonke iinkqubo ezinxulumene neqela kanye (thumela i-SIGKILL) ngokubhala "1" kwifayile yenyani cgroup.kill.
    • Izakhono ezongeziweyo ezihambelana nokuphendula ekubhaqweni kwe-lock locks ("i-split locks") eyenzeka xa ufikelela kwidatha engahambelaniyo kwimemori ngenxa yokuba xa uqhuba umyalelo we-athomu, idatha iwela imigca emibini ye-cache ye-CPU. Ukuvimba okunjalo kukhokelela ekunciphiseni okukhulu ekusebenzeni, ngoko ngaphambili kwakunokwenzeka ukuphelisa ngamandla isicelo esibangele ukuvala. Ukukhutshwa okutsha kongeza ipharamitha yomyalelo we-kernel "split_lock_detect=ratelimit:N", ekuvumela ukuba uchaze umda wenkqubo-banzi kwireyithi yokutshixa ngomzuzwana, emva kokugqithisa nayiphi na inkqubo eye yaba ngumthombo wesitshixo sokwahlula. iyakunyanzelwa ukuba imise i-20 ms endaweni yokuphelisa.
    • I-cgroup bandwidth controller CFS (i-CFS bandwidth isilawuli), emisela ukuba lingakanani ixesha leprosesa elinokwabelwa kwiqela ngalinye, liphumeza ukukwazi ukuchaza imida elinganiselweyo yexesha, evumela ukulawulwa okungcono kwe-latency-sensitive workloads. Umzekelo, ukusetha i-cpu.cfs_quota_us ukuya kwi-50000 kunye ne-cpu.cfs_period_us ukuya kwi-100000 kuya kuvumela iqela leenkqubo ukuba lichithe i-100ms yexesha le-CPU rhoqo nge-50ms.
    • Izibonelelo zokuqala ezongeziweyo zokudala abalayishi beprogram ye-BPF, eya kuvumela ngakumbi ukulayishwa kweenkqubo ze-BPF ezisayinwe ngesitshixo esithembekileyo sedijithali.
    • Kongezwe umsebenzi omtsha we-futex FUTEX_LOCK_PI2, esebenzisa isibali-xesha se-monotonic ukubala ixesha lokuvala elithathela ingqalelo ixesha elichithwe yinkqubo kwindlela yokulala.
    • Kuyilo lwe-RISC-V, inkxaso yamaphepha amakhulu enkumbulo (I-Transparent Huge-Pages) kunye nokukwazi ukusebenzisa indlela ye-KFENCE ukubona iimpazamo xa kusetyenzwa ngememori.
    • I madvise () umnxeba wenkqubo, obonelela ngeendlela zokwandisa ulawulo lwenkumbulo yenkqubo, yongeze i MADV_POPULATE_READ kunye ne MADV_POPULATE_WRITE iiflegi ukuvelisa "impazamo yephepha" kuwo onke amaphepha enkumbulo enziwe ukuba afunde okanye abhale imisebenzi, ngaphandle kokwenza ukufunda okanye ukubhala okuyinyani. (ukuqala). Ukusetyenziswa kweeflegi kunokuba luncedo ekunciphiseni ukulibaziseka ekuqhutyweni kweprogram, ngenxa yokuphunyezwa ngokukhawuleza komphathi "wephepha" kuwo onke amaphepha angabiwanga kanye, ngaphandle kokulinda ukufikelela kwangempela kubo.
    • Inkqubo yovavanyo lweyunithi ye-nit yongeze inkxaso yokuqhuba iimvavanyo kwindawo ye-QEMU.
    • Iitrayisi ezintsha zongeziwe: "i-osnoise" ukulandelela ukulibaziseka kwesicelo okubangelwa ukuphathwa kokuphazamiseka, kunye ne "timerlat" ukubonisa ulwazi oluneenkcukacha malunga nokulibaziseka xa uvuka kwisignali yesibali-xesha.
  • Ukwenziwa kweVirtual kunye noKhuseleko
    • I-memfd_secret () umnxeba wenkqubo yongezwe ukudala indawo yememori yabucala kwindawo eyodwa yedilesi, ebonakalayo kuphela kwinkqubo yobunini, engabonakali kwezinye iinkqubo, kwaye ingafikeleleki ngokuthe ngqo kwi-kernel.
    • Kwinkqubo yokucoca ifowuni ye-seccomp, xa uhambisa izibambi zokuthintela kwindawo yomsebenzisi, kunokwenzeka ukusebenzisa umsebenzi omnye we-athomu ukwenza inkcazo yefayile yomsebenzi ozimeleyo kwaye uyibuyisele xa uqhuba umnxeba wenkqubo. Umsebenzi ocetywayo uxazulula ingxaki yokuphazamisa umphathi kwindawo yomsebenzisi xa umqondiso ufika.
    • Kongezwe indlela entsha yokulawula imida yemithombo kwi-ID ye-ID yomsebenzisi, edibanisa izixhobo zokubala ze-rlimit zomntu ngamnye kumsebenzisi kwi-"user namespace". Utshintsho lusombulula ingxaki ngokusetyenziswa kwezinto zokubala eziqhelekileyo xa umsebenzisi omnye eqhuba iinkqubo kwizikhongozeli ezahlukeneyo.
    • I-hypervisor ye-KVM kwiinkqubo ze-ARM64 yongeze amandla okusebenzisa i-MTE (MemTag, iMemory Tagging Extension) ulwandiso kwiinkqubo zeendwendwe, ezikuvumela ukuba ubophe iithegi kumsebenzi ngamnye wokwabiwa kwememori kwaye uququzelele ukujonga ukusetyenziswa okuchanekileyo kwezalathisi ukuvala ukuxhaphaka. ubuthathaka obubangelwa kukufikelela kwiibhloko zememori esele zikhululwe, i-buffer ephuphumayo, ukufikelela phambi kokuqalisa kunye nokusetyenziswa ngaphandle komxholo wangoku.
    • Izixhobo ze-ARM64 zeQonga loQinisekiso lweSikhombisi ngoku zinokumiselwa ngokwahlukeneyo kwi-kernel kunye nesithuba somsebenzisi. Itekhnoloji ikuvumela ukuba usebenzise imiyalelo ekhethekileyo ye-ARM64 ukuqinisekisa iidilesi zokubuyisela usebenzisa utyikityo lwedijithali olugcinwe kumasuntswana angasentla angasetyenziswanga esalathisi ngokwaso.
    • Imowudi yomsebenzisi iLinux yongeze inkxaso yokusebenzisa abaqhubi bezixhobo zePCI ngebhasi yePCI enenyani, ephunyezwe ngumqhubi wePCI-over-virtio.
    • Kwiisistim ze-x86, inkxaso eyongezelelweyo yesixhobo se-virtio-iommu paravirtualized, evumela izicelo ze-IOMMU ezifana ne-ATTACH, DETACH, MAP kunye ne-UNMAP ukuba zithunyelwe ngaphaya kothutho lwe-virtio ngaphandle kokulinganisa iitafile zememori yamaphepha.
    • Kwii-Intel CPUs, ukusuka kwintsapho yaseSkylake ukuya kwiLake Lake, ukusetyenziswa kwe-Intel TSX (iTransactional Synchronization Extensions), ebonelela ngezixhobo zokuphucula ukusebenza kwezicelo ezinemisonto emininzi ngokususa ngamandla ungqamaniso olungeyomfuneko imisebenzi, ikhutshaziwe ngokungagqibekanga. Izandiso zivaliwe ngenxa yokuhlaselwa kweZombieload eqhuba ukuvuza kolwazi kusetyenziswa amajelo omntu wesithathu okwenzeka ngexesha lokusebenza kwe-TAA (TSX Asynchronous Abort) indlela.
  • Inkqubo engaphantsi yothungelwano
    • Ukudityaniswa kumbindi we-MPTCP (i-MultiPath TCP), ukwandiswa kweprotocol ye-TCP yokuququzelela ukusebenza koqhagamshelo lwe-TCP kunye nokuhanjiswa kweepakethi ngaxeshanye kwiindlela ezininzi ngeendlela ezahlukeneyo zonxibelelwano lwenethiwekhi ezinxulumene needilesi ezahlukeneyo ze-IP. Ukhupho olutsha longeza indlela yokuseta eyakho imigaqo-nkqubo ye-hash yetrafikhi ye-IPv4 kunye ne-IPv6 (umgaqo-nkqubo we-hash weendlela ezininzi), ikwenza kube lula ukumisela kwisithuba somsebenzisi ukuba yeyiphi imimandla ekwipakethi, kuqukwa negqunyiweyo, eza kusetyenziswa xa kubalwa i-hash emisela ukhetho lwendlela yepakethi.
    • Inkxaso yeesokethi ze-SOCK_SEQPACKET (eziyaliweyo kunye nokuhanjiswa okuthembekileyo kweedathagram) zongezwe kwi-virtio yothutho ebonakalayo.
    • Ubunakho be-SO_REUSEPORT socket mechanism yandisiwe, evumela ukuba iisokethi ezininzi zokumamela ziqhagamshelane nezibuko elinye ngexesha elinye ukufumana unxibelelwano nokusasazwa kwezicelo ezingenayo ngaxeshanye kuzo zonke iisokethi eziqhagamshelwe nge-SO_REUSEPORT, eyenza lula ukuyilwa kwezicelo zeseva ezinemisonto emininzi. . Uguqulelo olutsha longeza izixhobo zokudlulisa ulawulo kwenye i-socket kwimeko yokungaphumeleli xa kusetyenzwa isicelo ngesokhethi ekhethiweyo ekuqaleni (ixazulula ingxaki ngokulahleka koqhagamshelwano lomntu ngamnye xa uqalisa kwakhona iinkonzo).
  • Izixhobo
    • Umqhubi we-amdgpu ubonelela ngenkxaso kuluhlu olutsha lwe-AMD Radeon RX 6000 ye-GPU, enekhowudi ethi "Beige Goby" (Navi 24) kunye ne "Yellow Carp", kunye nenkxaso ephuculweyo ye-Aldebaran GPU (gfx90a) kunye neVan Gogh APU. Kongezwe ukukwazi ukusebenza ngaxeshanye neephaneli ezininzi ze-eDP. Kwi-APU Renoir, inkxaso yokusebenza kunye ne-encrypted buffers kwimemori yevidiyo (TMZ, i-Trusted Memory Zone) iphunyeziwe. Inkxaso eyongeziweyo yamakhadi emizobo eshushu-yokukhupha. I-Radeon RX 6000 (Navi 2x) ye-GPUs kunye ne-AMD GPUs endala, inkxaso ye-ASPM (i-Active State Power Management) yenziwe ngokungagqibekanga, eyayinikwe amandla kuphela kwi-Navi 1x, i-Vega kunye ne-Polaris GPUs.
    • Iichips ze-AMD, inkxaso yememori ebonakalayo ekwabelwana ngayo (i-SVM, imemori ekwabelwana ngayo) yongezwe ngokusekelwe kwi-HMM (i-Heterogeneous memory management) yenkqubo ephantsi, evumela ukusetyenziswa kwezixhobo kunye neeyunithi zabo zokulawula imemori (MMU, iyunithi yokulawula imemori), enokufikelela kwimemori engundoqo. Ngokukodwa, usebenzisa i-HMM, unokucwangcisa indawo yedilesi ekwabelwana ngayo phakathi kwe-GPU kunye ne-CPU, apho i-GPU inokufikelela kwimemori ephambili yenkqubo.
    • Inkxaso yokuqala eyongeziweyo yetekhnoloji ye-AMD Smart Shift, etshintsha ngamandla i-CPU kunye noseto lwamandla e-GPU kwiilaptops ezine-chipset ye-AMD kunye nekhadi lemizobo ukunyusa ukusebenza kwemidlalo, ukuhlelwa kwevidiyo, kunye nokunikezelwa kwe-3D.
    • Umqhubi we-i915 wamakhadi emizobo ye-Intel ibandakanya inkxaso yeetshiphusi ze-Intel Alderlake P.
    • Kongezwe umqhubi we-drm/hyperv we-Hyper-V iadaptha yemizobo ebonakalayo.
    • Inkxaso eyongeziweyo yeRaspberry Pi 400 yonke-kwikhompyuter enye.
    • Kongezwe umqhubi we-dell-wmi-yabucala ukuxhasa ikhamera yehardware kunye nokutshintsha kwemakrofoni kubandakanywe kwiilaptops zikaDell.
    • Kwiilaptops zeLenovo, ujongano lweWMI longezwe ekutshintsheni useto lweBIOS ngokusebenzisa isysfs/sys/class/firmware-attributes/.
    • Inkxaso eyandisiweyo yezixhobo ezinojongano lwe-USB4.
    • Inkxaso eyongeziweyo ye-AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 kunye neTexas Instruments TAS2505 amakhadi esandi kunye neecodecs. Uphuculo lwenkxaso yomsindo kwi-HP kunye ne-ASUS laptops. Iipetshi zongezwe ukunciphisa ulibaziseko phambi kokuba iaudio iqale ukudlala kwizixhobo ze-USB.

umthombo: opennet.ru

Yongeza izimvo