Linux kernel release 5.14

Nei twa moannen fan ûntwikkeling presintearre Linus Torvalds de frijlitting fan 'e Linux kernel 5.14. Under de meast opfallende feroarings: nij quotactl_fd () en memfd_secret () systeem calls, fuortheljen fan ide en rauwe bestjoerders, nije I / O prioriteit controller foar cgroup, SCHED_CORE taak scheduling modus, ynfrastruktuer foar it meitsjen fan ferifiearre BPF programma loaders.

De nije ferzje omfettet 15883 fixes fan 2002 ûntwikkelders, de patchgrutte is 69 MB (de wizigingen beynfloede 12580 bestannen, 861501 rigels koade waarden tafoege, 321654 rigels waarden wiske). Ungefear 47% fan alle wizigingen yntrodusearre yn 5.14 binne relatearre oan apparaatbestjoerders, sawat 14% fan feroaringen binne relatearre oan it bywurkjen fan koade spesifyk foar hardware-arsjitektuer, 13% binne relatearre oan de netwurkstapel, 3% binne relatearre oan triemsystemen, en 3% binne relatearre oan ynterne kernel-subsystemen.

Wichtichste ynnovaasjes:

  • Skiif subsysteem, I / O en triem systemen
    • In nije I / O-prioritearingskontrôler is ymplementearre foar cgroups, rq-qos, dy't de ferwurkingsprioriteit fan oanfragen kinne kontrolearje om apparaten te blokkearjen dy't generearre wurde troch leden fan elke cgroup. Nije prioriteitskontrôlerstipe is tafoege oan 'e mq-deadline I / O-planner.
    • It ext4-bestânsysteem ymplementearret in nij ioctl-kommando, EXT4_IOC_CHECKPOINT, dy't alle ôfhannele transaksjes út it tydskrift en har assosjearre buffers twingt om nei skiif te spoelen, en ek oerskriuwt it gebiet dat brûkt wurdt troch it tydskrift yn opslach. De feroaring waard taret as ûnderdiel fan in inisjatyf om ynformaasjelekken út bestânsystemen te foarkommen.
    • Prestaasjeoptimalisaasjes binne makke oan Btrfs: troch it eliminearjen fan ûnnedige logging fan útwreide attributen tidens fsync-útfiering, is de prestaasjes fan yntinsive operaasjes mei útwreide attributen ferhege mei maksimaal 17%. Derneist, by it útfieren fan trimoperaasjes dy't gjin omfang beynfloedzje, wurdt folsleine syngronisaasje útskeakele, wat de operaasjetiid mei 12% fermindere. In ynstelling is tafoege oan sysfs om I/O-bânbreedte te beheinen by it kontrolearjen fan de FS. Ioctl-oproppen tafoege om de grutte te feroarjen en apparaatoperaasjes te wiskjen.
    • Yn XFS is de ymplemintaasje fan 'e buffer-cache opnij ûntwurpen, dy't oerstapt is nei it tawizen fan ûnthâldsiden yn batchmodus. Ferbettere cache-effisjinsje.
    • F2FS foeget in opsje ta om te operearjen yn allinich-lêsmodus en ymplemintearret in komprimearre blokcache-modus (compress_cache) om willekeurich lêsprestaasjes te ferbetterjen. Stipe is ymplementearre foar it komprimearjen fan triemmen dy't yn kaart brocht binne mei de mmap () operaasje. Om selektyf útskeakelje triem kompresje basearre op in masker, in nije mount opsje nocompress is foarsteld.
    • Der is wurk dien yn 'e exFAT-bestjoerder om kompatibiliteit te ferbetterjen mei wat opslach fan digitale kamera's.
    • Tafoege de quotactl_fd () systeem oprop, wêrmei jo te beheare kwotas net fia in spesjale apparaat triem, mar troch it opjaan fan in triem descriptor ferbûn mei it triem systeem dêr't it kwota wurdt tapast.
    • De âlde bestjoerders foar blokapparaten mei de IDE-ynterface binne út 'e kearn fuortsmiten; se binne lang ferfongen troch it subsysteem libata.
    • De "raw" stjoerprogramma is fuortsmiten fan 'e kernel, wêrtroch unbufferde tagong ta blokkearjende apparaten fia de /dev/raw ynterface. Dizze funksjonaliteit is al lang ymplementearre yn applikaasjes mei de O_DIRECT-flagge.
  • Unthâld en systeem tsjinsten
    • De taakplanner ymplementearret in nije scheduling-modus, SCHED_CORE, wêrtroch jo kinne kontrolearje hokker prosessen tegearre kinne wurde útfierd op deselde CPU-kearn. Elk proses kin in koekje-identifikaasje wurde tawiisd dy't de omfang fan fertrouwen definiearret tusken prosessen (bygelyks hearrend ta deselde brûker of kontener). By it organisearjen fan koade-útfiering kin de planner derfoar soargje dat ien CPU-kearn allinich dield wurdt ûnder prosessen dy't ferbûn binne mei deselde eigner, dy't kinne wurde brûkt om guon Spectre-oanfallen te blokkearjen troch te foarkommen dat fertroude en net-fertroude taken rinne op deselde SMT (Hyper Threading) thread .
    • Foar cgroup is stipe foar de kill-operaasje ymplementearre, wêrtroch jo alle prosessen dy't ferbûn binne mei de groep tagelyk kinne deadzje (SIGKILL stjoere) troch "1" te skriuwen nei it firtuele bestân cgroup.kill.
    • Utwreide mooglikheden yn ferbân mei it reagearjen op it opspoaren fan split slûzen ("split slûzen") dy't foarkomme as tagong ta unaligned gegevens yn it ûnthâld fanwege it feit dat by it útfieren fan in atomic ynstruksje, de gegevens krúst twa CPU cache rigels. Sokke blokkearjen liedt ta in signifikante daling yn prestaasjes, dus earder wie it mooglik om de applikaasje dy't it blokkearjen feroarsake mei krêftich te beëinigjen. De nije release foeget in kernel kommando-rigelparameter "split_lock_detect = ratelimit: N" ta, wêrmei jo in systeembrede limyt kinne definiearje op 'e taryf fan beskoattelaksjes per sekonde, nei't elk proses dat is wurden de boarne fan in split slot sil wurde twongen om te stopjen foar 20 ms ynstee fan terminating.
    • De cgroup bandwidth controller CFS (CFS bandwidth controller), dy't bepaalt hoefolle prosessor tiid kin wurde tawiisd oan elke cgroup, ymplemintearret de mooglikheid om te definiearjen tiid-beheinde grinzen, dat soarget foar bettere regeling fan latency-gefoelige workloads. Bygelyks, it ynstellen fan cpu.cfs_quota_us op 50000 en cpu.cfs_period_us nei 100000 sil in groep prosessen tastean om 100ms CPU-tiid elke 50ms te fergrieme.
    • Inisjele ynfrastruktuer tafoege foar it meitsjen fan BPF-programmaladers, dy't it laden fan allinich BPF-programma's ûndertekene mei in fertroude digitale kaai fierder tastean.
    • In nije futex-operaasje tafoege FUTEX_LOCK_PI2, dy't in monotoanyske timer brûkt om in time-out te berekkenjen dy't rekken hâldt mei de tiid dy't it systeem yn sliepmodus besteegje.
    • Foar de RISC-V-arsjitektuer wurde stipe foar grutte ûnthâldsiden (Transparent Huge-Pages) en de mooglikheid om it KFENCE-meganisme te brûken om flaters te detektearjen by it wurkjen mei ûnthâld ymplementearre.
    • De madvise()-systeemoprop, dy't in middel biedt om it ûnthâldbehear fan in proses te optimalisearjen, hat de MADV_POPULATE_READ- en MADV_POPULATE_WRITE-flaggen tafoege om in "sidefout" te generearjen op alle ûnthâldsiden yn kaart brocht foar lês- of skriuwoperaasjes, sûnder in feitlik lêzen of skriuwen út te fieren (foarútgong). It gebrûk fan flaggen kin nuttich wêze foar it ferminderjen fan fertragingen yn 'e útfiering fan it programma, troch de pro-aktive útfiering fan' e "sidefout"-hanneler foar alle net-allokearre siden tagelyk, sûnder te wachtsjen op 'e feitlike tagong ta har.
    • It testsysteem foar kunit-ienheid hat stipe tafoege foar it útfieren fan tests yn 'e QEMU-omjouwing.
    • Nije tracers binne tafoege: "osnoise" om applikaasjefertragingen te folgjen feroarsake troch ûnderbrekkingsôfhanneling, en "timerlat" om detaillearre ynformaasje te werjaan oer fertragingen by it wekkerjen fan in timersinjaal.
  • Virtualisaasje en feiligens
    • De memfd_secret () systeem oprop is tafoege foar it meitsjen fan in privee ûnthâld gebiet yn in isolearre adres romte, sichtber allinnich foar it eigendom proses, net wjerspegele nei oare prosessen, en net direkt tagonklik foar de kearn.
    • Yn de seccomp systeem oprop filtering systeem, by it ferpleatsen fan blokkearjende handlers yn brûkersromte, is it mooglik om in inkele atomêre operaasje te brûken foar it meitsjen fan in triembeskriuwing foar in isolearre taak en it weromjaan by it ferwurkjen fan in systeemoprop. De foarnommen operaasje lost it probleem op om in handler yn brûkersromte te ûnderbrekken as in sinjaal komt.
    • In nij meganisme tafoege foar it behearen fan boarnegrinzen yn 'e brûkersnammeromte, dy't yndividuele rlimittellers bynt oan in brûker yn 'e "brûkersnammeromte". De feroaring lost it probleem op mei it brûken fan mienskiplike boarnetellers as ien brûker prosessen yn ferskate konteners rint.
    • De KVM-hypervisor foar ARM64-systemen hat de mooglikheid tafoege om de MTE-útwreiding (MemTag, Memory Tagging Extension) te brûken yn gastsystemen, wêrtroch jo tags kinne bine oan elke operaasje foar ûnthâldallokaasje en it kontrolearjen fan it juste gebrûk fan oanwizers organisearje om de eksploitaasje te blokkearjen fan kwetsberens feroarsake troch tagong ta al befrijde ûnthâld blokken, overflows buffer, tagong foar inisjalisaasje en gebrûk bûten de hjoeddeiske kontekst.
    • De Pointer Authentication-fasiliteiten fan it ARM64-platfoarm kinne no apart wurde konfigureare foar kernel en brûkersromte. De technology lit jo spesjalisearre ARM64-ynstruksjes brûke om weromadressen te ferifiearjen mei digitale hantekeningen dy't wurde opslein yn 'e net brûkte boppeste bits fan' e oanwizer sels.
    • Brûkermodus Linux hat stipe tafoege foar it brûken fan bestjoerders foar PCI-apparaten mei in firtuele PCI-bus, ymplementearre troch de PCI-over-virtio-bestjoerder.
    • Foar x86-systemen, tafoege stipe foar it virtio-iommu paravirtualisearre apparaat, wêrtroch't IOMMU-oanfragen lykas ATTACH, DETACH, MAP en UNMAP wurde ferstjoerd oer it virtio-ferfier sûnder te emulearjen fan ûnthâldsidetabellen.
    • Foar Intel CPU's, fan 'e Skylake-famylje oant Coffee Lake, is it gebrûk fan Intel TSX (Transactional Synchronization Extensions), dy't ark leverje foar it ferbetterjen fan de prestaasjes fan multi-threaded applikaasjes troch dynamysk eliminearjen fan ûnnedige syngronisaasje operaasjes, standert útskeakele. Tafoegings binne útskeakele fanwege de mooglikheid fan Zombieload oanfallen dy't manipulearje ynformaasje leakage fia tredden kanalen dy't optreedt tidens de wurking fan de TAA (TSX Asynchronous Abort) meganisme.
  • Netwurk subsysteem
    • Yntegraasje yn 'e kearn fan MPTCP (MultiPath TCP), in útwreiding fan it TCP-protokol foar it organisearjen fan de wurking fan in TCP-ferbining mei de levering fan pakketten tagelyk lâns ferskate rûtes fia ferskate netwurkynterfaces ferbûn mei ferskate IP-adressen. De nije release foeget in meganisme ta foar it ynstellen fan jo eigen ferkears-hash-belied foar IPv4 en IPv6 (multipath-hash-belied), wêrtroch it mooglik is om út brûkersromte te bepalen hokker fjilden yn pakketten, ynklusyf ynkapsulearre, sille wurde brûkt by it berekkenjen fan de hash dy't de hash bepaalt kar fan paad foar it pakket.
    • Stipe foar SOCK_SEQPACKET-sockets (besteld en betroubere oerdracht fan datagrammen) is tafoege oan it virtio firtuele ferfier.
    • De mooglikheden fan it SO_REUSEPORT-socketmeganisme binne útwreide, wêrtroch ferskate harkersockets tagelyk kinne ferbine mei ien poarte om ferbiningen te ûntfangen mei de ferdieling fan ynkommende oanfragen tagelyk oer alle sockets ferbûn fia SO_REUSEPORT, wat it meitsjen fan multi-threaded serverapplikaasjes ferienfâldiget . De nije ferzje foeget ark ta foar it oerdragen fan kontrôle nei in oare socket yn gefal fan mislearring by it ferwurkjen fan in fersyk troch de earst selekteare socket (lost it probleem op mei it ferlies fan yndividuele ferbiningen by it opnij starte fan tsjinsten).
  • Wetter - Agrarwetter
    • De amdgpu-bestjoerder leveret stipe foar de nije AMD Radeon RX 6000-searje fan GPU's, koadenamme "Beige Goby" (Navi 24) en "Yellow Carp", lykas ek ferbettere stipe foar de Aldebaran GPU (gfx90a) en Van Gogh APU. De mooglikheid tafoege om tagelyk te wurkjen mei ferskate eDP-panielen. Foar APU Renoir is stipe foar wurkjen mei fersifere buffers yn fideoûnthâld (TMZ, Trusted Memory Zone) ymplementearre. Stipe tafoege foar hot-unplug grafyske kaarten. Foar Radeon RX 6000 (Navi 2x) GPUs en âldere AMD GPUs, ASPM (Active State Power Management) stipe is standert ynskeakele, dat wie earder ynskeakele allinnich foar Navi 1x, Vega en Polaris GPUs.
    • Foar AMD-chips is stipe foar dielde firtuele ûnthâld (SVM, dielde firtuele ûnthâld) tafoege basearre op it subsysteem HMM (Heterogeneous memory management), wêrtroch it gebrûk fan apparaten mei har eigen ûnthâldbehear-ienheden (MMU, ûnthâldbehear-ienheid), dy't tagong kinne ta haadûnthâld. Benammen mei HMM kinne jo in dielde adresromte organisearje tusken de GPU en CPU, wêryn de GPU tagong kin ta it haadûnthâld fan it proses.
    • Inisjele stipe tafoege foar AMD Smart Shift-technology, dy't CPU- en GPU-krêftynstellingen dynamysk feroaret op laptops mei in AMD-chipset en grafyske kaart om prestaasjes te ferbetterjen foar gaming, fideo-bewurking en 3D-rendering.
    • De i915-bestjoerder foar Intel-grafykkaarten omfettet stipe foar Intel Alderlake P-chips.
    • Added drm / hyperv-bestjoerder foar Hyper-V firtuele grafyske adapter.
    • Stipe tafoege foar de Raspberry Pi 400 alles-yn-ien kompjûter.
    • Dell-wmi-privacy-bestjoerder tafoege om de hardware-kamera- en mikrofoanswitches te stypjen dy't opnommen binne yn Dell-laptops.
    • Foar Lenovo-laptops is in WMI-ynterface tafoege foar it feroarjen fan BIOS-ynstellingen fia sysfs /sys/class/firmware-attributes/.
    • Utwreide stipe foar apparaten mei USB4-ynterface.
    • Stipe tafoege foar AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 en Texas Instruments TAS2505 lûdkaarten en codecs. Ferbettere audiostipe op HP en ASUS laptops. Patches tafoege om fertragingen te ferminderjen foardat audio begjint te spyljen op USB-apparaten.

Boarne: opennet.ru

Add a comment