Linux-kern 5.14

Linux-kern 5.14

Na twee maande van ontwikkeling, Linus Torvalds voorgelê kern vrystelling Linux 5.14. Van die mees noemenswaardige veranderinge: nuwe quotactl_fd() en memfd_secret()-stelseloproepe, verwydering van ide- en rou drywers, nuwe I/O-prioriteitsbeheerder vir cgroup, SCHED_CORE-taakskeduleringsmodus, infrastruktuur vir die skep van geverifieerde BPF-programlaaiers.

Die nuwe weergawe bevat 15883 2002 regstellings van 69 12580 ontwikkelaars, die pleistergrootte is 861501 MB (die veranderinge het 321654 47 lêers geraak, 5.14 14 reëls kode is bygevoeg, 13 3 reëls is uitgevee). Ongeveer 3% van alle veranderinge wat in XNUMX aangebring is, hou verband met toestelbestuurders, ongeveer XNUMX% van veranderinge hou verband met die opdatering van kode spesifiek vir hardeware-argitekture, XNUMX% hou verband met die netwerkstapel, XNUMX% hou verband met lêerstelsels en XNUMX% hou verband met interne kernsubstelsels.

Die belangrikste innovasies:

  • skyfsubstelsel, invoer/afvoer en lêerstelsels:
    • vir cgroep geïmplementeer nuwe I/O-prioriteitsbeheerder - rq-qos, wat die verwerkingsprioriteit van versoeke kan beheer om toestelle wat deur lede van elke cgroup gegenereer word, te blokkeer. Nuwe prioriteit kontroleerder ondersteuning is bygevoeg by die mq-sperdatum I/O skeduleerder;
    • op ext4 lêerstelsel geïmplementeer nuwe ioctl-opdrag EXT4_IOC_CHECKPOINT, wat alle hangende transaksies van die log en gepaardgaande buffers na skyf dwing, en ook die area wat deur die log-in-berging gebruik word, oorskryf. Die verandering is voorberei as deel van 'n inisiatief om inligtinglekke uit lêerstelsels te voorkom;
    • in Btrfs bekendgestel Prestasie-optimalisasies: Deur onnodige aantekening van uitgebreide eienskappe tydens fsync-uitvoering uit te skakel, het die werkverrigting van intensiewe bedrywighede met uitgebreide eienskappe met tot 17% toegeneem. Boonop word volledige sinchronisasie gedeaktiveer wanneer snoeibewerkings uitgevoer word wat nie omvang beïnvloed nie, wat die bewerkingstyd met 12% verminder het. 'n Instelling is by sysfs gevoeg om I/O-bandwydte te beperk wanneer die FS nagegaan word. Bygevoeg ioctl-oproepe om die grootte te kanselleer en toestelbewerkings uit te vee;
    • in XFS herwerk implementering van 'n bufferkas, wat oorgedra word na die toekenning van geheuebladsye in bondelmodus. Verbeterde kas doeltreffendheid;
    • F2FS het 'n opsie bygevoeg om in leesalleenmodus te werk en 'n saamgeperste blokkasmodus (compress_cache) geïmplementeer om ewekansige leeswerkverrigting te verbeter. Ondersteuning is geïmplementeer vir die saampersing van lêers wat na die geheue gekarteer is met behulp van die mmap()-bewerking. Om lêerkompressie selektief deur masker te deaktiveer, is 'n nuwe monteeropsie nocompress voorgestel;
    • werk is in die exFAT-bestuurder gedoen om versoenbaarheid met die berging van sommige digitale kameras te verbeter;
    • bygevoeg stelsel oproep quotactl_fd(), wat jou toelaat om kwotas te bestuur nie deur 'n spesiale toestellêer nie, maar deur 'n lêerbeskrywing te spesifiseer wat geassosieer word met die lêerstelsel waarvoor die kwota toegepas word;
    • Ou drywers vir bloktoestelle met die IDE-koppelvlak is uit die kern verwyder; hulle is lankal deur die libata-substelsel vervang. Ondersteuning vir ou toestelle is ten volle behou, die veranderinge het slegs betrekking op die vermoë om ou drywers te gebruik, wanneer die aandrywers /dev/hd* genoem word, en nie /dev/sd* nie;
    • Die "rou" drywer is uit die kern verwyder, wat ongebufferde toegang bied tot blokkeertoestelle via die /dev/raw-koppelvlak. Hierdie funksionaliteit is lank reeds geïmplementeer in toepassings wat die O_DIRECT vlag gebruik;
  • geheue en stelseldienste:
    • 'n nuwe skeduleringsmodus is in die taakskeduleerder geïmplementeer SCHED_CORE, wat jou toelaat om te beheer watter prosesse saam op dieselfde SVE-kern kan loop. Aan elke proses kan 'n koekie-identifiseerder toegeken word wat die omvang van vertroue tussen prosesse definieer (byvoorbeeld, wat aan dieselfde gebruiker of houer behoort). Wanneer kode-uitvoering georganiseer word, kan die skeduleerder verseker dat een SVE-kern slegs gedeel word tussen prosesse wat met dieselfde eienaar geassosieer word, wat gebruik kan word om sommige Spectre-aanvalle te blokkeer deur te verhoed dat betroubare en onbetroubare take op dieselfde SMT (Hyper Threading)-draad loop ;
    • vir die cgroup-meganisme is ondersteuning vir die doodmaak-operasie geïmplementeer, wat jou toelaat om alle prosesse wat met die groep geassosieer word op een slag dood te maak (stuur SIGKILL) deur “1” te skryf na die virtuele lêer cgroup.kill;
    • uitgebreide vermoëns wat verband hou met reaksie op die opsporing van gesplete slotte ("split locks") wat plaasvind wanneer toegang tot ongelynde data in die geheue verkry word as gevolg van die feit dat wanneer 'n atoominstruksie uitgevoer word, die data twee SVE-kaslyne kruis. Sulke blokkering lei tot 'n aansienlike afname in prestasie, so voorheen was dit moontlik om die toepassing wat die blokkering veroorsaak het, met geweld te beëindig. Die nuwe weergawe voeg die kern-opdragreëlparameter "split_lock_detect=ratelimit:N" by, wat jou toelaat om 'n stelselwye limiet op die tempo van sluitbewerkings per sekonde te definieer, waarna enige proses wat die bron van 'n gesplete slot geword het, sal oorskry. gedwing word om vir 20 ms te stop in plaas van om te beëindig;
    • Die cgroup bandwidth controller CFS (CFS bandwidth controller), wat bepaal hoeveel verwerker tyd aan elke cgroup toegewys kan word, het die vermoë om limiete te definieer wat beperk word deur 'n gegewe duur van aksie, wat beter regulering van latensie-sensitiewe ladings moontlik maak. Byvoorbeeld, om cpu.cfs_quota_us op 50000 en cpu.cfs_period_us op 100000 te stel, sal 'n groep prosesse toelaat om 100ms se SVE-tyd elke 50ms te mors;
    • bygevoeg aanvanklike infrastruktuur vir die skep van BPF-programlaaiers, wat verder die aflaai van slegs BPF-programme sal toelaat wat met 'n betroubare digitale sleutel onderteken is;
    • het 'n nuwe futex-operasie FUTEX_LOCK_PI2 bygevoeg, wat 'n monotoniese timer gebruik om die tydsverloop te bereken, wat die tyd wat die stelsel in slaapmodus spandeer in ag neem;
    • vir die RISC-V-argitektuur, ondersteuning vir groot geheuebladsye (Transparent Huge-Pages) en die vermoë om die KHEIN om foute te identifiseer wanneer met geheue gewerk word;
    • in die madvise()-stelseloproep, wat 'n manier bied om prosesgeheuebestuur te optimaliseer, bygevoeg MADV_POPULATE_READ- en MADV_POPULATE_WRITE-vlae om 'n "bladsyfout" te genereer op alle geheuebladsye wat gekarteer is vir lees- of skryfbewerkings, sonder om 'n werklike lees of skryf uit te voer (voorwaarde). Die gebruik van vlae kan nuttig wees om vertragings in die uitvoering van die program te verminder, danksy die proaktiewe uitvoering van die "bladsyfout"-hanteerder vir alle ontoegekende bladsye gelyktydig, sonder om te wag vir die werklike toegang daartoe;
    • in 'n eenheidtoetsstelsel kunit bygevoeg ondersteuning vir die uitvoer van toetse in die QEMU-omgewing;
    • nuwe spoorsnyers bygevoeg: "osnoise" om toepassingsvertragings wat veroorsaak word deur onderbrekingshantering op te spoor, en " timerlat " om gedetailleerde inligting oor vertragings te vertoon wanneer wakker word van 'n tydhouersein;
  • virtualisering en sekuriteit:
    • bygevoeg stelsel oproep memfd_secret(), wat jou toelaat om 'n privaat geheue area in 'n geïsoleerde adresruimte te skep, slegs sigbaar vir die eienaarproses, nie weerspieël in ander prosesse nie en nie direk toeganklik vir die kern nie;
    • in die seccomp-stelseloproepfiltreringstelsel, wanneer slothanteerders na gebruikersruimte beweeg, is dit moontlik om een ​​atoombewerking te gebruik om 'n lêerbeskrywer vir 'n geïsoleerde taak te skep en dit terug te stuur wanneer 'n stelseloproep verwerk word. Die voorgestelde operasie los op die probleem met onderbreking van die hanteerder in gebruikersruimte wanneer 'n sein arriveer;
    • bygevoeg nuwe meganisme om hulpbronbeperking in die gebruiker-ID-naamruimte te bestuur, wat individuele rlimit-tellers aan 'n gebruiker in die "gebruikersnaamruimte" bind. Die verandering los die probleem op met die gebruik van algemene hulpbrontellers wanneer een gebruiker prosesse in verskillende houers laat loop;
    • die KVM-hypervisor vir ARM64-stelsels het die vermoë bygevoeg om die MTE (MemTag, Memory Tagging Extension)-uitbreiding in gasstelsels te gebruik, wat jou toelaat om etikette aan elke geheuetoewysingsbewerking te bind en die kontrole van die korrekte gebruik van wysers te organiseer om die uitbuiting van kwesbaarhede wat veroorsaak word deur toegang tot reeds vrygestelde geheueblokke, oorloop buffers, toegang voor inisialisering en gebruik buite die huidige konteks;
    • Wyserverifikasie wat deur die ARM64-platform verskaf word, kan nou afsonderlik vir kern- en gebruikersspasie gekonfigureer word. Die tegnologie laat jou toe om gespesialiseerde ARM64-instruksies te gebruik om terugstuuradresse te verifieer met behulp van digitale handtekeninge wat in die ongebruikte boonste stukkies van die wyser self gestoor word;
    • in gebruikersmodus Linux bygevoeg ondersteuning vir die gebruik van drywers vir PCI-toestelle met 'n virtuele PCI-bus, geïmplementeer deur die PCI-over-virtio-bestuurder;
    • vir x86-stelsels, bykomende ondersteuning vir die virtio-iommu paravirtualiseerde toestel, wat jou toelaat om IOMMU-versoeke, soos ATTACH, DETACH, MAP en UNMAP, oor die virtio-vervoer te stuur sonder om geheuebladsytabelle na te boots;
    • Vir Intel-SVE's, van die Skylake-familie tot Coffee Lake, is die gebruik van Intel TSX (Transactional Synchronization Extensions), wat nutsmiddels verskaf om die werkverrigting van multi-threaded-toepassings te verbeter deur onnodige sinchronisasie-operasies dinamies uit te skakel, by verstek gedeaktiveer. Uitbreidings is gedeaktiveer weens die moontlikheid van aanvalle Zombielading, manipulering van die lekkasie van inligting deur derdeparty-kanale wat plaasvind tydens die werking van die meganisme vir asynchrone onderbreking van bedrywighede (TAA, TSX Asynchronous Abort);
  • netwerk substelsel:
    • voortgesette integrasie in die kern van MPTCP (MultiPath TCP), 'n uitbreiding van die TCP-protokol vir die organisering van die werking van 'n TCP-verbinding met die aflewering van pakkies gelyktydig langs verskeie roetes deur verskillende netwerkkoppelvlakke wat met verskillende IP-adresse geassosieer word. In die nuwe uitgawe bygevoeg 'n meganisme om jou eie verkeer-hash-beleide vir IPv4 en IPv6 (multipath-hash-beleid) op te stel, wat dit moontlik maak vanuit die gebruikersruimte om te bepaal watter velde in pakkies, insluitend ingekapselde, gebruik sal word wanneer die hash bereken word wat die keuse van pad bepaal vir die pakkie;
    • socket-ondersteuning is by die virtuele vervoervirtio gevoeg SOCK_SEQPACKET (ordelike en betroubare oordrag van datagramme);
    • Die vermoëns van die SO_REUSEPORT-sokmeganisme is uitgebrei, wat verskeie luisterfokke toelaat om gelyktydig aan een poort te koppel om verbindings te ontvang met die verspreiding van inkomende versoeke gelyktydig oor alle voetstukke wat via SO_REUSEPORT verbind is, wat die skepping van multi-draad bedienertoepassings vergemaklik. . In die nuwe weergawe bygevoeg middel om beheer na 'n ander sok oor te dra in geval van mislukking wanneer 'n versoek deur die aanvanklik geselekteerde sok verwerk word (los die probleem op met die verlies van individuele verbindings wanneer dienste herbegin word);
  • toerusting:
    • in die amdgpu-bestuurder geïmplementeer ondersteuning vir die nuwe AMD Radeon RX 6000-reeks GPU's, met die kodenaam "Beige Goby" (Navi 24) en "Yellow Carp", sowel as verbeterde ondersteuning vir Aldebaran GPU (gfx90a) en Van Gogh APU. Bygevoeg die vermoë om gelyktydig met verskeie eDP panele te werk. Vir APU Renoir is ondersteuning vir die werk met geënkripteerde buffers in videogeheue (TMZ, Trusted Memory Zone) geïmplementeer. Bygevoeg ondersteuning vir warm-ontkoppel grafiese kaarte. Vir Radeon RX 6000 (Navi 2x) GPU's en ouer AMD GPU's, is ondersteuning vir die ASPM (Active State Power Management) kragbesparingsmeganisme by verstek geaktiveer, wat voorheen slegs vir Navi 1x, Vega en Polaris GPU's geaktiveer was;
    • vir AMD-skyfies is ondersteuning vir gedeelde virtuele geheue (SVM, gedeelde virtuele geheue) bygevoeg op grond van die HMM (Heterogene geheuebestuur) substelsel, wat die gebruik van toestelle met hul eie geheuebestuurseenhede (MMU, geheuebestuurseenheid) moontlik maak, wat toegang tot hoofgeheue kan verkry. Insluitend die gebruik van HMM, kan jy 'n gedeelde adresruimte tussen die GPU en SVE organiseer, waarin die GPU toegang tot die hoofgeheue van die proses kan verkry;
    • aanvanklike tegnologie-ondersteuning bygevoeg AMD Smart Shift, wat die kragverbruikparameters van die SVE en GPU op skootrekenaars met 'n skyfiestel en 'n AMD-grafiese kaart dinamies verander om werkverrigting te verbeter tydens speletjies, videoredigering en 3D-weergawe;
    • in die i915-bestuurder vir Intel-videokaarte ingesluit ondersteuning vir Intel Alderlake P-skyfies;
    • bygevoeg drm/hyperv bestuurder vir die Hyper-V virtuele grafiese adapter;
    • bygevoeg simpledrm-grafiese drywer wat die EFI-GOP- of VESA-raambuffer gebruik wat deur die UEFI-firmware of BIOS vir uitvoer verskaf word. Die hoofdoel van die drywer is om grafiese uitvoervermoëns te verskaf tydens die aanvanklike stadiums van selflaai, voordat 'n volledige DRM-drywer gebruik kan word. Die drywer kan ook as 'n tydelike oplossing gebruik word vir toerusting wat nog nie inheemse DRM-drywers het nie;
    • bygevoeg alles-in-een rekenaarondersteuning Framboos Pi 400;
    • Bygevoeg dell-wmi-privaatheid bestuurder om die kamera en mikrofoon hardeware skakelaars ingesluit in Dell skootrekenaars te ondersteun;
    • vir Lenovo-skootrekenaars bygevoeg WMI-koppelvlak vir die verandering van BIOS-parameters via sysfs /sys/class/firmware-attributes/;
    • uitgebrei ondersteuning vir toestelle met USB4-koppelvlak;
    • bygevoeg ondersteuning vir klankkaarte en codecs AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 en Texas Instruments TAS2505. Verbeterde klankondersteuning op HP- en ASUS-skootrekenaars. Bygevoeg pleisters om vertragings te verminder voordat oudio op toestelle met 'n USB-koppelvlak begin speel.

Bron – opennet.ru.

Bron: linux.org.ru