Linux kernel 5.14

Linux kernel 5.14

Nei twa moannen fan ûntwikkeling, Linus Torvalds yntrodusearre kernel release Linux 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.

haad ynnovaasjes:

  • skiif subsysteem, ynfier / útfier en triem systemen:
    • foar cgroup útfierd nije I / O prioriteit controller - rq-qos, dat kin behearskje de ferwurking prioriteit fan fersiken te blokkearjen apparaten oanmakke troch leden fan elke cgroup. Nije prioriteit controller stipe is tafoege oan de mq-deadline I / O Scheduler;
    • op ext4 triem systeem útfierd nij ioctl kommando EXT4_IOC_CHECKPOINT, dy't twingt alle wachtsjende transaksjes út it log en assosjearre buffers oan skiif, en ek oerskriuwt it gebiet brûkt troch de log yn opslach. De wiziging waard taret as ûnderdiel fan in inisjatyf om ynformaasjelekken út triemsystemen te foarkommen;
    • yn btrf yntrodusearre Prestaasjeoptimisaasjes: Troch it eliminearjen fan ûnnedige logging fan útwreide attributen tidens fsync-útfiering, ferhege de prestaasjes fan yntinsive operaasjes mei útwreide attributen 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 it feroarjen fan grutte en it wiskjen fan apparaatoperaasjes te annulearjen;
    • yn XFS omwurke ymplemintaasje fan in buffer cache, dat wurdt oerdroegen oan de tawizing fan ûnthâld siden yn batch modus. Ferbettere cache-effisjinsje;
    • F2FS hat in opsje tafoege om yn allinich-lêsmodus te wurkjen en in komprimearre blokcache-modus (compress_cache) ymplementearre om willekeurige 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 troch masker, in nije mount opsje nocompress is foarsteld;
    • wurk is dien yn 'e exFAT-bestjoerder om kompatibiliteit te ferbetterjen mei de opslach fan guon digitale kamera's;
    • tafoege systeem oprop quotactl_fd(), wêrmei jo kwota's beheare kinne net fia in spesjale apparaatbestân, mar troch in bestânbeskriuwing oan te jaan dy't ferbûn is mei it bestânsysteem wêrfoar it kwota tapast wurdt;
    • Alde bestjoerders foar blokapparaten mei de IDE-ynterface binne út 'e kearn fuortsmiten; se binne lang ferfongen troch it subsysteem libata. Stipe foar âlde apparaten is folslein behâlden, de wizigingen hawwe allinich de mooglikheid om âlde bestjoerders te brûken, by it brûken fan hokker de driuwfearren /dev/hd* neamd waarden, en net /dev/sd*;
    • De "raw" stjoerprogramma is fuortsmiten fan 'e kernel, en biedt unbufferde tagong ta blokkearjende apparaten fia de /dev/raw ynterface. Dizze funksjonaliteit is al lang ymplementearre yn applikaasjes mei de O_DIRECT-flagge;
  • ûnthâld en systeem tsjinsten:
    • in nije skemamodus is ymplementearre yn 'e taakplanner SCHED_CORE, wêrtroch jo kinne kontrolearje hokker prosessen tegearre op deselde CPU-kearn rinne kinne. 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 tusken 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 betroubere en ûnbetroubere taken rinne op deselde SMT (Hyper Threading) thread ;
    • foar it cgroup-meganisme 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 de firtuele triem cgroup.kill;
    • útwreide 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 de kernel kommandorigelparameter "split_lock_detect = ratelimit:N" ta, wêrmei jo in systeembrede limyt kinne definiearje op 'e taryf fan beskoattelaksjes per sekonde, nei't it is oerskreden hokker proses dat de boarne fan in splitslot waard wurde twongen om te stopjen foar 20 ms ynstee fan te beëinigjen;
    • De cgroup bandwidth controller CFS (CFS bandwidth controller), dy't bepaalt hoefolle prosessor tiid kin wurde tawiisd oan eltse cgroup, hat de mooglikheid om te definiearjen grinzen beheind troch in opjûne doer fan aksje, dat makket it mooglik better regeljen fan latency-sensitive loads. Bygelyks, in set cpu.cfs_quota_us oan 50000 en cpu.cfs_period_us oan 100000 sil tastean in groep fan prosessen te fergrieme 100ms fan CPU tiid eltse 50ms;
    • tafoege inisjele ynfrastruktuer foar it meitsjen fan BPF programma loaders, dy't fierder sil tastean de ynlaad fan allinnich BPF programma tekene mei in betroubere digitale kaai;
    • tafoege in nije futex-operaasje FUTEX_LOCK_PI2, dy't in monotoanyske timer brûkt om de timeout te berekkenjen, dy't rekken hâldt mei de tiid troch it systeem yn sliepmodus;
    • foar de RISC-V-arsjitektuer, stipe foar grutte ûnthâldsiden (Transparent Huge-Pages) en de mooglikheid om de KFENCE om flaters te identifisearjen by it wurkjen mei ûnthâld;
    • yn 'e madvise () systeemoprop, dy't in middel biedt om prosesûnthâldbehear te optimalisearjen, tafoege MADV_POPULATE_READ- en MADV_POPULATE_WRITE-flaggen 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 (foarkar). 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 eigentlike tagong ta har;
    • yn in ienheid testsysteem kunit tafoege stipe foar it útfieren fan tests yn 'e QEMU-omjouwing;
    • nije tracers tafoege: "osnoise" om applikaasjefertragingen te folgjen dy't feroarsake binne troch ûnderbrekkingsôfhanneling, en " timerlat " om detaillearre ynformaasje te werjaan oer fertragingen by it wekkerjen fan in timersinjaal;
  • virtualisaasje en feiligens:
    • tafoege systeem oprop memfd_secret(), wêrmei jo in privee ûnthâldgebiet meitsje kinne yn in isolearre adresromte, allinich sichtber foar it eignerproses, net reflektearre yn oare prosessen en net direkt tagonklik foar de kearn;
    • yn it seccomp systeem oprop filtersysteem, as it ferpleatsen fan slot handlers yn brûkersromte, is it mooglik om te brûken ien atomêre operaasje foar in meitsje in triem descriptor foar in isolearre taak en werom it by it ferwurkjen fan in systeem oprop. De foarnommen operaasje lost it probleem mei ûnderbrekking fan de handler yn brûkersromte as der in sinjaal komt;
    • tafoege nij meganisme te beheare boarne beheining yn de brûker ID nammeromte, dy't bynt yndividuele rlimit counters oan in brûker yn de "brûker nammeromte". 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 (MemTag, Memory Tagging Extension) tafoeging te brûken yn gastsystemen, wêrtroch jo tags kinne bine oan elke operaasje foar ûnthâldtawizing en it kontrolearjen fan it juste gebrûk fan pointers organisearje om de eksploitaasje fan te blokkearjen kwetsberens feroarsake troch tagong ta al befrijde ûnthâld blokken, overflows buffers, tagong foar inisjalisaasje en gebrûk bûten de hjoeddeiske kontekst;
    • Pointer Authentication fersoarge troch it ARM64-platfoarm kin no apart konfigureare wurde foar kernel en brûkersromte. De technology kinne jo gebrûk meitsje fan spesjalisearre ARM64 ynstruksjes te ferifiearjen werom adressen mei help fan digitale hantekeningen dy't wurde opslein yn de net brûkte boppeste bits fan de oanwizer sels;
    • yn Linux brûkersmodus tafoege stipe foar it brûken fan bestjoerders foar PCI-apparaten mei in firtuele PCI-bus, útfierd troch de PCI-over-virtio-bestjoerder;
    • foar x86 systemen, tafoege stipe foar de virtio-iommu paravirtualized apparaat, dat kinne jo stjoere IOMMU fersiken, lykas ATTACH, DETACH, MAP en UNMAP, oer de virtio ferfier sûnder emulating ûnthâld side tabellen;
    • 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 fanwegen de mooglikheid fan oanfallen Zombieload, it manipulearjen fan it lekken fan ynformaasje fia kanalen fan tredden dy't foarkomt yn 'e wurking fan it meganisme foar asynchrone ûnderbrekking fan operaasjes (TAA, TSX Asynchronous Abort);
  • netwurk subsysteem:
    • trochgeande 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. Yn it nije nûmer tafoege in meganisme foar it ynstellen fan jo eigen ferkear-hashbelied foar IPv4 en IPv6 (multipath-hash-belied), wêrtroch it mooglik is fanút de brûkersromte te bepalen hokker fjilden yn pakketten, ynklusyf ynkapsulearre, brûkt wurde by it berekkenjen fan de hash dy't de kar fan paad bepaalt foar it pakket;
    • socket stipe is tafoege oan de firtuele ferfier virtio SOCK_SEQPACKET (oardere en betroubere oerdracht fan datagrammen);
    • 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 . Yn de nije ferzje tafoege middels 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 werstarten fan tsjinsten);
  • apparatuer:
    • yn 'e amdgpu-bestjoerder útfierd stipe foar de nije AMD Radeon RX 6000 rige fan GPUs, koadenamme "Beige Goby" (Navi 24) en "Yellow Carp", likegoed as ferbettere stipe foar 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, stipe foar de ASPM (Active State Power Management) enerzjybesparring meganisme 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 (Heterogene ûnthâldbehear), wêrtroch it gebrûk fan apparaten mei har eigen ienheden foar ûnthâldbehear (MMU, ûnthâldbehear-ienheid), dy't tagong kinne ta haadûnthâld. Ynklusyf mei help fan HMM, kinne jo organisearje in dielde adres romte tusken de GPU en CPU, dêr't de GPU kin tagong ta de wichtichste ûnthâld fan it proses;
    • tafoege initial technologystipe AMD Smart Shift, dy't dynamysk feroaret de parameters foar enerzjyferbrûk fan 'e CPU en GPU op laptops mei in chipset en in AMD-grafykkaart om prestaasjes te ferbetterjen by gaming, fideo-bewurking en 3D-rendering;
    • yn 'e i915-bestjoerder foar Intel-fideokaarten ynbegrepen stipe foar Intel Alderlake P-chips;
    • tafoege drm / hyperv-bestjoerder foar de Hyper-V firtuele grafyske adapter;
    • tafoege simpledrm graphics driver dat brûkt de EFI-GOP of VESA framebuffer levere troch de UEFI firmware of BIOS foar útfier. It haaddoel fan 'e stjoerprogramma is om grafyske útfiermooglikheden te leverjen yn' e earste fazen fan boot, foardat in folsleine DRM-bestjoerder kin wurde brûkt. De bestjoerder kin ek brûkt wurde as tydlike oplossing foar apparatuer dy't noch gjin eigen DRM-bestjoerders hat;
    • tafoege alles-yn-ien kompjûterstipe Raspberry Pi 400;
    • Added dell-wmi-privacy-bestjoerder om de kamera- en mikrofoan-hardware-skeakels te stypjen opnommen yn Dell-laptops;
    • foar Lenovo laptops tafoege WMI-ynterface foar it feroarjen fan BIOS-parameters fia sysfs /sys/class/firmware-attributes/;
    • útwreide stipe foar apparaten mei USB4-ynterface;
    • tafoege stipe foar lûd kaarten en codecs AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 en Texas Instruments TAS2505. Ferbettere audiostipe op HP en ASUS laptops. Added patches om fertragingen te ferminderjen foardat audio begjint te spyljen op apparaten mei in USB-ynterface.

Boarne - opennet.ru.

Boarne: linux.org.ru