Kutulutsidwa kwa kernel ya Linux 5.14

Pambuyo pa miyezi iwiri yachitukuko, Linus Torvalds adapereka kutulutsidwa kwa Linux kernel 5.14. Zina mwa zosintha zodziwika bwino: mafoni atsopano a quotactl_fd() ndi memfd_secret(), kuchotsa ma ide ndi madalaivala aiwisi, wowongolera watsopano wa I/O wa gulu, SCHED_CORE ndandanda yantchito, zomanga zopangira zida zotsimikizika za BPF.

Mtundu watsopanowu umaphatikizapo kukonza kwa 15883 kuchokera kwa opanga 2002, kukula kwa chigamba ndi 69 MB (zosintha zomwe zidakhudza mafayilo 12580, mizere ya 861501 ya code idawonjezeredwa, mizere 321654 idachotsedwa). Pafupifupi 47% ya zosintha zonse zomwe zidayambitsidwa mu 5.14 zimagwirizana ndi madalaivala azipangizo, pafupifupi 14% ya zosintha zimakhudzana ndi kukonzanso kachidindo kamangidwe ka ma hardware, 13% ikugwirizana ndi stack networking, 3% ikugwirizana ndi mafayilo amafayilo, ndi 3% zimagwirizana ndi ma kernel subsystems amkati.

Zatsopano zazikulu:

  • Disk Subsystem, I/O ndi File Systems
    • Woyang'anira watsopano wa I / O wakhazikitsidwa pamagulu, rq-qos, omwe amatha kuyang'anira kufunikira kwa zopempha kuti aletse zida zopangidwa ndi mamembala a gulu lililonse. Thandizo lotsogola latsopano lawonjezedwa ku mq-deadline I/O scheduler.
    • Dongosolo la fayilo la ext4 limagwiritsa ntchito lamulo latsopano la ioctl, EXT4_IOC_CHECKPOINT, lomwe limakakamiza zonse zomwe zikuyembekezeredwa kuchokera mumagazini ndi ma buffers ogwirizana nawo kuti zisunthidwe ku disk, ndikulembanso malo omwe magaziniyo ikugwiritsidwa ntchito posungira. Kusinthaku kudakonzedwa ngati gawo la njira yoletsa kutulutsa kwa chidziwitso kuchokera pamafayilo.
    • Kukhathamiritsa kwa magwiridwe antchito kwapangidwa ku Btrfs: pochotsa kudulidwa kosafunikira kwazinthu zowonjezera panthawi ya fsync kuphatikizika, magwiridwe antchito amphamvu okhala ndi mawonekedwe owonjezera awonjezeka mpaka 17%. Kuphatikiza apo, pochita ntchito zochepetsera zomwe sizingakhudze kuchuluka, kulunzanitsa kwathunthu kumayimitsidwa, zomwe zidachepetsa nthawi yogwira ntchito ndi 12%. Zosintha zawonjezeredwa ku sysfs kuti muchepetse bandwidth ya I/O mukamayang'ana FS. Mafoni a ioctl anawonjezedwa kuti aletse kusintha makulidwe ndi kufufuta magwiridwe antchito a chipangizo.
    • Mu XFS, kukhazikitsidwa kwa buffer cache kwakonzedwanso, komwe kwasinthidwa ndikugawa masamba amakumbukidwe mu batch mode. Kuchita bwino kwa cache.
    • F2FS imawonjezera mwayi wogwiritsa ntchito powerenga-pokha ndipo imagwiritsa ntchito makina osungira (compress_cache) kuti azitha kuwerenga mwachisawawa. Thandizo lakhazikitsidwa pakukanikiza mafayilo omwe amajambulidwa kukumbukira pogwiritsa ntchito mmap() . Kuti mulepheretse kukakamiza kwa fayilo kutengera chigoba, njira yatsopano yopangira nocompress yaperekedwa.
    • Ntchito yachitika mu dalaivala wa exFAT kuti agwirizane ndi kusungirako makamera a digito.
    • Anawonjezera kuyimba kwadongosolo kwa quotactl_fd (), komwe kumakupatsani mwayi wowongolera ma quotas osati kudzera pa fayilo yapadera yazida, koma pofotokoza kufotokozera kwamafayilo komwe kumalumikizidwa ndi fayilo yomwe gawolo limagwiritsidwa ntchito.
    • Madalaivala akale a zida zotchinga ndi mawonekedwe a IDE achotsedwa pa kernel; adasinthidwa kale ndi libata subsystem.
    • Dalaivala "yaiwisi" yachotsedwa pa kernel, ndikupereka mwayi wosatsekeka wotsekereza zida kudzera pa /dev/raw mawonekedwe. Izi zakhala zikugwiritsidwa ntchito pamapulogalamu ogwiritsira ntchito O_DIRECT mbendera.
  • Memory ndi ntchito zadongosolo
    • Wokonza ntchito amakhazikitsa njira yatsopano yokonzera, SCHED_CORE, yomwe imakupatsani mwayi wowongolera njira zomwe zitha kuchitidwa palimodzi pachimake cha CPU. Njira iliyonse imatha kupatsidwa chozindikiritsa cookie chomwe chimatanthawuza kuchuluka kwa kukhulupirirana pakati pa njira (mwachitsanzo, za wogwiritsa ntchito yemweyo kapena chidebe). Pokonzekera kukhazikitsidwa kwa ma code, wokonzayo amatha kuonetsetsa kuti CPU imodzi imagawidwa pakati pa njira zomwe zimagwirizanitsidwa ndi mwiniwake yemweyo, zomwe zingagwiritsidwe ntchito kuletsa ziwopsezo zina za Specter poletsa ntchito zodalirika komanso zosadalirika kuyenda pa ulusi womwewo wa SMT (Hyper Threading). .
    • Pagulu, chithandizo chakupha chakhazikitsidwa, chomwe chimakulolani kupha njira zonse zomwe zimagwirizanitsidwa ndi gulu nthawi imodzi (tumizani SIGKILL) polemba "1" ku fayilo yeniyeni ya cgroup.kill.
    • Kuthekera kokulirapo kokhudzana ndi kuyankha pakuzindikirika kwa maloko ogawanika ("split Locks") omwe amapezeka mukamapeza deta yosasinthika m'makumbukidwe chifukwa chakuti popereka malangizo a atomiki, deta imadutsa mizere iwiri ya cache ya CPU. Kutsekereza kotereku kumabweretsa kutsika kwakukulu kwa magwiridwe antchito, kotero m'mbuyomu zinali zotheka kuletsa mwamphamvu ntchito yomwe idayambitsa kutsekereza. Kutulutsidwa kwatsopano kumawonjezera kernel command line parameter "split_lock_detect=ratelimit:N", yomwe imakupatsani mwayi wofotokozera malire amtundu uliwonse pamlingo wotsekera pa sekondi iliyonse, mutatha kupitilira njira iliyonse yomwe yakhala gwero la loko yotsekera. adzakakamizika kuyima kwa 20 ms m'malo mothetsa.
    • The cgroup bandwidth controller CFS (CFS bandwidth controller), yomwe imatsimikizira kuchuluka kwa nthawi ya purosesa yomwe ingagawidwe ku gulu lirilonse, imagwiritsa ntchito luso lofotokozera malire a nthawi, omwe amalola kuwongolera bwino ntchito za latency-sensitive workload. Mwachitsanzo, kukhazikitsa cpu.cfs_quota_us ku 50000 ndi cpu.cfs_period_us ku 100000 kudzalola gulu la machitidwe kuwononga 100ms ya CPU nthawi 50ms iliyonse.
    • Zowonjezera zoyambira zopangira zojambulira pulogalamu ya BPF, zomwe zitha kuloleza kutsitsa kwa mapulogalamu a BPF okha omwe asainidwa ndi kiyi ya digito yodalirika.
    • Yawonjezera ntchito yatsopano ya futex FUTEX_LOCK_PI2, yomwe imagwiritsa ntchito chowerengera nthawi ya monotonic kuti iwerengetse nthawi yomwe imayang'ana nthawi yomwe makinawo amagona.
    • Pazomangamanga za RISC-V, kuthandizira masamba akulu okumbukira (Transparent Huge-Masamba) komanso kuthekera kogwiritsa ntchito makina a KFENCE kuti azindikire zolakwika mukamagwira ntchito ndi kukumbukira.
    • The madvise() system call, yomwe imapereka njira zowonjezera kasamalidwe ka kukumbukira, yawonjezera MADV_POPULATE_READ ndi MADV_POPULATE_WRITE mbendera kuti apange "tsamba cholakwika" pamasamba onse okumbukira omwe amawerengedwa kuti awerenge kapena kulemba ntchito, osawerenga kapena kulemba zenizeni. (choyamba). Kugwiritsiridwa ntchito kwa mbendera kungakhale kothandiza kuchepetsa kuchedwetsa kuchitidwa kwa pulogalamuyo, chifukwa cha kuchitidwa mwachidwi kwa "page fault" wothandizira pamasamba onse omwe sanagawidwe nthawi imodzi, popanda kuyembekezera kupeza kwenikweni kwa iwo.
    • Dongosolo loyesa ma unit unit lawonjezera thandizo pakuyesa mayeso m'malo a QEMU.
    • Ma tracers atsopano awonjezedwa: "osnoise" kutsata kuchedwa kwa ntchito komwe kumachitika chifukwa cha kusokoneza, ndi "timerlat" kuwonetsa zambiri zakuchedwa mukadzuka kuchokera ku siginecha yanthawi.
  • Virtualization ndi Chitetezo
    • Memfd_secret () kuyimba kwadongosolo kwawonjezedwa kuti pakhale malo okumbukira pawokha pamalo a adilesi akutali, owoneka kokha ndi momwe akukhalira, osawonetsedwa ndi njira zina, komanso osapezeka mwachindunji ku kernel.
    • Mu seccomp system call filtering system, posuntha otsekereza otsekera kumalo ogwiritsira ntchito, ndizotheka kugwiritsa ntchito ntchito imodzi ya atomiki kupanga chofotokozera cha fayilo ya ntchito yapayokha ndikuyibwezeranso pokonza kuyimba kwadongosolo. Ntchito yomwe ikufunsidwa imathetsa vuto la kusokoneza wothandizira mu malo ogwiritsira ntchito chizindikiro chikafika.
    • Anawonjezera njira yatsopano yoyendetsera malire azinthu mu ID ya ogwiritsa ntchito, yomwe imamangiriza ma rlimit counters kwa wogwiritsa ntchito mu "user namespace". Kusinthaku kumathetsa vutolo pogwiritsa ntchito zida zowerengera zomwe zimagwiritsidwa ntchito ngati wogwiritsa ntchito m'matumba osiyanasiyana.
    • KVM hypervisor ya machitidwe a ARM64 yawonjezera kuthekera kogwiritsa ntchito kukulitsa kwa MTE (MemTag, Memory Tagging Extension) m'machitidwe a alendo, omwe amakulolani kumangirira ma tag ku ntchito iliyonse yogawa kukumbukira ndikukonzekera kuyang'ana kugwiritsa ntchito kolondola kwa zolozera kuti muletse kugwiritsa ntchito. ziwopsezo zomwe zimadza chifukwa chofikira zomakumbukira zomasulidwa kale, buffer yosefukira, zofikira zisanayambike ndikugwiritsa ntchito kunja kwa zomwe zikuchitika.
    • Malo ovomerezeka a Pointer Authentication papulatifomu ya ARM64 tsopano atha kukonzedwa padera pa kernel ndi malo ogwiritsa ntchito. Ukadaulo umakupatsani mwayi wogwiritsa ntchito malangizo apadera a ARM64 kuti mutsimikizire maadiresi obwerera pogwiritsa ntchito siginecha ya digito yomwe imasungidwa m'malo osagwiritsidwa ntchito kumtunda kwa cholozera chokha.
    • Linux-mode Linux yawonjezera chithandizo chogwiritsa ntchito madalaivala a zida za PCI okhala ndi basi ya PCI, yoyendetsedwa ndi woyendetsa PCI-over-virtio.
    • Kwa machitidwe a x86, chithandizo chowonjezera cha chipangizo cha virtio-iommu paravirtualized, kulola zopempha za IOMMU monga ATTACH, DETACH, MAP ndi UNMAP kuti zitumizidwe pamayendedwe a virtio popanda kutsanzira matebulo amasamba okumbukira.
    • Kwa Intel CPUs, kuchokera ku banja la Skylake kupita ku Coffee Lake, kugwiritsa ntchito Intel TSX (Transactional Synchronization Extensions), yomwe imapereka zida zothandizira kupititsa patsogolo ntchito zamitundu yambiri pochotsa ntchito zogwirizanitsa zosafunikira, zimayimitsidwa mwachisawawa. Zowonjezera zimayimitsidwa chifukwa chotheka kuti Zombieload ziwukidwe zomwe zimagwiritsa ntchito kutayikira kwa chidziwitso kudzera pamakina a chipani chachitatu zomwe zimachitika panthawi ya TAA (TSX Asynchronous Abort).
  • Network subsystem
    • Kuphatikizika pakati pa MPTCP (MultiPath TCP), kukulitsa kwa protocol ya TCP yokonzekera kugwiritsa ntchito kulumikizana kwa TCP ndi kutumiza mapaketi nthawi imodzi m'njira zingapo kudzera pamaneti osiyanasiyana olumikizidwa ndi ma adilesi osiyanasiyana a IP. Kutulutsidwa kwatsopanoku kumawonjezera njira yokhazikitsira mfundo zanu zamtundu wama traffic za IPv4 ndi IPv6 (multipath hash policy), zomwe zimapangitsa kuti zitheke kudziwa malo omwe ali m'mapaketi, kuphatikiza omwe ali m'mapaketi, omwe adzagwiritsidwe ntchito powerengera hashi yomwe imatsimikizira kusankha njira ya paketi.
    • Thandizo la SOCK_SEQPACKET sockets (olamulidwa ndi odalirika kufalitsa ma datagram) awonjezedwa pamayendedwe a virtio.
    • Mphamvu za SO_REUSEPORT socket mechanism yawonjezedwa, zomwe zimalola kuti zomvera zingapo zigwirizane ndi doko limodzi nthawi imodzi kuti zigwirizane ndi kugawa zopempha zomwe zikubwera panthawi imodzi pazitsulo zonse zolumikizidwa kudzera pa SO_REUSEPORT, zomwe zimathandizira kupanga mapulogalamu a seva amitundu yambiri. . Mtundu watsopanowu umawonjezera zida zosinthira zowongolera ku socket ina ngati zalephera pakukonza zopempha ndi socket yomwe idasankhidwa poyamba (imathetsa vuto ndikutayika kwa maulumikizidwe apawokha poyambitsanso ntchito).
  • Zida
    • Dalaivala wa amdgpu amapereka chithandizo kwa ma GPU atsopano a AMD Radeon RX 6000, otchedwa "Beige Goby" (Navi 24) ndi "Yellow Carp", komanso kuthandizira kwa Aldebaran GPU (gfx90a) ndi Van Gogh APU. Adawonjezera kuthekera kogwira ntchito nthawi imodzi ndi mapanelo angapo a eDP. Kwa APU Renoir, chithandizo chogwira ntchito ndi ma buffers osungidwa muvidiyo (TMZ, Trusted Memory Zone) yakhazikitsidwa. Thandizo lowonjezera la makadi azithunzi a hot-unplug. Kwa Radeon RX 6000 (Navi 2x) GPUs ndi ma GPU akale a AMD, thandizo la ASPM (Active State Power Management) limayatsidwa mwachisawawa, lomwe m'mbuyomu linkangothandizidwa ndi Navi 1x, Vega ndi Polaris GPUs.
    • Kwa tchipisi ta AMD, kuthandizira kukumbukira kukumbukira (SVM, kukumbukira kogawana) kwawonjezeredwa kutengera HMM (Heterogeneous Memory Management) subsystem, yomwe imalola kugwiritsa ntchito zida zokhala ndi mayunitsi awo owongolera kukumbukira (MMU, memory management unit), zomwe zimatha kulowa mu kukumbukira kwakukulu. Makamaka, pogwiritsa ntchito HMM, mutha kukonza malo omwe ali nawo adilesi pakati pa GPU ndi CPU, momwe GPU imatha kufikira kukumbukira kwakukulu kwa njirayi.
    • Kuwonjezedwa koyambirira kwaukadaulo wa AMD Smart Shift, komwe kumasintha mphamvu za CPU ndi GPU pamalaputopu okhala ndi chipset cha AMD ndi makadi ojambula kuti apititse patsogolo magwiridwe antchito amasewera, kusintha makanema, ndi kumasulira kwa 3D.
    • Dalaivala wa i915 wa makadi ojambula a Intel akuphatikiza kuthandizira tchipisi ta Intel Alderlake P.
    • Adawonjezera drm/hyperv driver wa Hyper-V virtual graphic adapter.
    • Zowonjezera zothandizira pakompyuta ya Raspberry Pi 400 yonse-mu-modzi.
    • Adawonjezera dalaivala wachinsinsi wa dell-wmi kuti athandizire kamera ya hardware ndi masinthidwe a maikolofoni omwe akuphatikizidwa mu laputopu ya Dell.
    • Kwa ma laputopu a Lenovo, mawonekedwe a WMI awonjezedwa kuti asinthe masinthidwe a BIOS kudzera pa sysfs /sys/class/firmware-attributes/.
    • Thandizo lowonjezereka lazida zokhala ndi mawonekedwe a USB4.
    • Thandizo lowonjezera la AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ndi Texas Instruments TAS2505 makadi amawu ndi ma codec. Kuthandizira kwamawu pakompyuta ya HP ndi ASUS. Onjezani zigamba kuti muchepetse kuchedwa mawu asanayambe kusewera pazida za USB.

Source: opennet.ru

Kuwonjezera ndemanga