Linux kernel 5.14

Linux kernel 5.14

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds Är kÀrnrelease Linux 5.14. Bland de mest anmÀrkningsvÀrda förÀndringarna finns nya systemanrop quotactl_fd() och memfd_secret(), borttagning av ide- och raw-drivrutiner, en ny in-/ut-prioriteringskontroller för cgroup, SCHED_CORE schemalÀggningslÀge samt infrastruktur för att skapa bootloaders för verifierade BPF-program.

I den nya versionen har 15883 korrigeringar gjorts av 2002 utvecklare, patchens storlek Àr 69 MB (Àndringarna berörde 12580 filer, 861501 kodrader lades till, 321654 rader togs bort). Cirka 47% av alla förÀndringar i 5.14 gÀller enhetsdrivrutiner, ungefÀr 14% av Àndringarna avser uppdatering av arkitektspecifik kod, 13% relaterar till nÀtverksstacken, 3% till filsystem och 3% till interna kÀrnsystem.

Huvud nyheter:

  • disksubsystem, in-/ut och filsystem:
    • för cgroup genomförd en ny in-/ut-prioriteringskontroller — rq-qos, som kan hantera prioriteten av behandling av blockenhetsförfrĂ„gningar som genereras av deltagarna i varje cgroup. Stöd för den nya prioriteringskontrollen har lagts till i in-/ut-schemalĂ€ggaren mq-deadline;
    • i ext4-filsystemet har möjligheten ny ioctl-kommando EXT4_IOC_CHECKPOINT, som tvingar fram skrivning av alla vĂ€ntande transaktioner frĂ„n loggen till disken och relaterade buffertar, samt Ă„ter skriver den omrĂ„de som anvĂ€nds av loggen i lagringen. FörĂ€ndringen förbereds som en del av initiativet för att förhindra informationslĂ€ckor frĂ„n filsystem;
    • i Btrfs har prestandaoptimeringar: genom att utesluta onödig loggning av utökade attribut under fsync-utförande har prestandan för intensiva operationer med utökade attribut ökat med upp till 17%. Dessutom har full synkronisering inaktiverats vid utförande av truncations som inte pĂ„verkar extent, vilket har minskat operationstiden med 12%. En instĂ€llning har lagts till i sysfs för att begrĂ€nsa in-/ut-kapaciteten vid filsystemskontroller. Ioctl-anrop har lagts till för att avbryta operationer för storleksĂ€ndringar och enhetsborttagning;
    • i XFS omdesignad implementering av cache-systemet som har omvandlats till sidallokering i packat lĂ€ge. Effektiviteten i cache-arbetet har ökat;
    • I F2FS har en ny möjlighet lagts till för att arbeta i skrivskyddat lĂ€ge och en cachemetod för komprimerade block (compress_cache) har implementerats för att förbĂ€ttra prestanda vid slumpmĂ€ssig lĂ€sning. Stöd för komprimering av filer som Ă„terspeglas i minnet via mmap()-operationen har genomförts. För selektiv avstĂ€ngning av filkomprimering genom mask föreslĂ„s en ny monteringsalternativ nocompress;
    • i exFAT-drivaren har arbete genomförts för att förbĂ€ttra kompatibiliteten med lagringsenheter frĂ„n vissa digitalkameror;
    • ett systemanrop quotactl_fd(), som gör det möjligt att hantera kvoter inte via en specialenhetsfil, utan genom att ange en filbeskrivare kopplad till filsystemet som kvoten gĂ€ller;
    • gamla drivare för blockenheter med IDE-grĂ€nssnitt har tagits bort frĂ„n kĂ€rnan, vilka redan lĂ€nge har ersatts av libata-subsystemet. Stödet för gamla enheter har bevarats i sin helhet, förĂ€ndringarna rör endast möjligheten att anvĂ€nda gamla drivare, dĂ€r lagringsenheterna namngavs /dev/hd* istĂ€llet för /dev/sd*;
    • drivaren "raw", som tillhandahĂ„ller obuffrat tillgĂ„ng till blockenheter via grĂ€nssnittet /dev/raw, har tagits bort frĂ„n kĂ€rnan. Den angivna funktionen har lĂ€nge implementerats i program med hjĂ€lp av flaggan O_DIRECT;
  • minne och systemtjĂ€nster:
    • i schemalĂ€ggaren har ett nytt schemalĂ€ggningslĂ€ge implementerats SCHED_CORE, vilket gör det möjligt att styra vilka processer som kan köras tillsammans pĂ„ en och samma CPU-kĂ€rna. Varje process kan tilldelas en cookie-identifierare som definierar förtroendeomrĂ„det mellan processerna (till exempel tillhörande en anvĂ€ndare eller container). Vid organisation av kodexekvering kan schemalĂ€ggaren sĂ€kerstĂ€lla delning av en CPU-kĂ€rna endast för processer relaterade till en och samma Ă€gare, vilket kan anvĂ€ndas för att blockera vissa attacker av typen Spectre genom att förhindra exekvering i en SMT-trĂ„d (Hyper Threading) av bĂ„de betrodda och icke-betrodda uppgifter;
    • stöd för kill-operationen har implementerats för cgroup-mekanismen, vilket gör att alla processer kopplade till gruppen kan avslutas pĂ„ en gĂ„ng (skickar SIGKILL) genom att skriva "1" till den virtuella filen cgroup.kill;
    • Möjligheterna som rör reaktion pĂ„ upptĂ€ckten av split-lĂ„sningar har utvidgats, vilka uppstĂ„r vid Ă„tkomst till ojusterade data i minnet pĂ„ grund av att data korsar tvĂ„ CPU-cachelinjer nĂ€r en atomĂ€r instruktion utförs. SĂ„dana lĂ„sningar leder till en betydande nedgĂ„ng i prestanda, sĂ„ tidigare fanns möjligheten att tvinga avslutande av den applikation som orsakade lĂ„sningen. I den nya versionen har en kommandoradsparameter i kĂ€rnan, "split_lock_detect=ratelimit:N", lagts till, vilket möjliggör att faststĂ€lla ett allmĂ€nt systemgrĂ€ns för intensiteten av blockeringar per sekund, efter vilken alla processer som blivit kĂ€llan till en split-lĂ„sning istĂ€llet för att avslutas kommer att tvingas stoppas i 20 ms;
    • I cgroup-kontrollern för CFS (CFS-bandbreddskontroller), som bestĂ€mmer hur mycket processor-tid som kan tilldelas varje cgroup, har möjligheten att definiera begrĂ€nsningar med angivna tidsintervall genomförts, vilket gör att man bĂ€ttre kan reglera belastningar som Ă€r kĂ€nsliga för fördröjningar. Till exempel, att stĂ€lla in vĂ€rdet cpu.cfs_quota_us till 50000 och cpu.cfs_period_us till 100000 gör det möjligt för en grupp processer att anvĂ€nda 50 ms CPU-tid var 100 ms;
    • har lagts till Det finns en grundlĂ€ggande infrastruktur för att skapa lastare av BPF-program, vilket i framtiden kommer att möjliggöra uppladdning av endast BPF-program som Ă€r signerade med en betrodd digital nyckel;
    • En ny futex-operation FUTEX_LOCK_PI2 har lagts till, som anvĂ€nder en monotontimer för att berĂ€kna timeouten och tar hĂ€nsyn till den tid som systemet har varit i vilolĂ€ge;
    • Stöd för stora minnessidor (Transparent Huge-Pages) och möjligheten att anvĂ€nda mekanismen har implementerats för RISC-V-arkitekturen, KFENCE för att upptĂ€cka minnesfel;
    • i systemanropet madvise(), som ger medel för att optimera minneshanteringen av processen, har lagts till flaggorna MADV_POPULATE_READ och MADV_POPULATE_WRITE för att generera "page fault" pĂ„ alla minnessidor som reflekteras för lĂ€s- eller skrivoperationer, utan att faktiskt utföra nĂ„got lĂ€s- eller skrivande (prefault). AnvĂ€ndningen av flaggorna kan vara anvĂ€ndbara för att minska fördröjningar under programkörning, genom att pĂ„ förhand utföra hanteraren av "page fault" pĂ„ alla ouppdelade sidor, utan att vĂ€nta pĂ„ att de verkliga Ă„tkomsterna ska ske;
    • i systemet för enhetstestning kunit har lagts till stöd för körning av tester i QEMU-miljö;
    • nya spĂ„rningsverktyg har lagts till: "osnoise" för att spĂ„ra fördröjningar i applikationer orsakade av interruptbearbetning, och "timerlat" för att ge detaljerad information om fördröjningar vid vĂ€ckning av en timer;
  • virtualisering och sĂ€kerhet:
    • tillagd systemanropet memfd_secret(), som gör det möjligt att skapa ett privat minnesomrĂ„de i ett isolerat adresseringsutrymme, synligt endast för Ă€garprocessen, inte reflekterat i andra processer och direkt oĂ„tkomligt för kĂ€rnan;
    • i systemet för filtrering av systemanrop seccomp har möjligheten införts att anvĂ€nda en atomĂ€r operation för att skapa en filbeskrivare för isolerade uppgifter och Ă„terlĂ€mna den vid hantering av systemanrop. Den föreslagna operationen löser problemet med avbrottshantering i anvĂ€ndarrummet vid mottagande av signal;
    • tillagd en ny mekanism för att hantera resursbegrĂ€nsningar inom anvĂ€ndaridentifieringsnamnrymden, som kopplar individuella rlimit-tellare till anvĂ€ndaren i "user namespace". Ändringen löser problemet med tillĂ€mpning av gemensamma resursrĂ€knare vid körning av processer frĂ„n en anvĂ€ndare i olikaContainrar;
    • i hypervisor KVM för ARM64-system har möjligheten att anvĂ€nda MTE (MemTag, Memory Tagging Extension) i gĂ€stsystem lagts till, vilket möjliggör koppling av taggar till varje minnesallokeringsoperation och organiserar kontroll av korrekt anvĂ€ndning av pekare för att blockera utnyttjande av sĂ„rbarheter orsakade av Ă„tkomst till redan frigjort minne, buffertöverskridningar, Ă„tkomster innan initiering och anvĂ€ndning utanför nuvarande sammanhang;
    • de verktyg för pekarautentisering som tillhandahĂ„lls av ARM64-plattformen kan nu konfigureras separat för kĂ€rnan och anvĂ€ndarrummet. Tekniken möjliggör anvĂ€ndning av specialiserade ARM64-instruktioner för att verifiera returadresser med hjĂ€lp av digitala signaturer som lagras i de oanvĂ€nda översta bitarna av sjĂ€lva pekaren;
    • i User-mode Linux har lagts till stöd för att anvĂ€nda drivrutiner för PCI-enheter med en virtuell PCI-buss, som implementeras av drivrutinen PCI-over-virtio;
    • För system med x86 har stöd för det paravirtualiserade enheten virtio-iommu lagts till, vilket möjliggör att skicka IOMMU-förfrĂ„gningar sĂ„som ATTACH, DETACH, MAP och UNMAP ovh transportera dem med virtio utan att emulera sidtabeller.
    • För Intel CPU:er, frĂ„n Skylake- till Coffee Lake-familjen, Ă€r anvĂ€ndningen av Intel TSX (Transactional Synchronization Extensions) som standard avstĂ€ngd, vilket ger medel för att öka prestandan för multitrĂ„diga applikationer genom att dynamiskt undanta onödiga synkroniseringsoperationer. Utökningarna stĂ€ngdes av pĂ„ grund av möjligheten till attacker Zombieload, som manipulerar lĂ€ckage av information genom sidokanaler som uppstĂ„r vid drift av den asynkrona avbrottshanteringsmekanismen (TAA, TSX Asynchronous Abort);
  • nĂ€tverksunderstöd:
    • Integrationen med kĂ€rnan för MPTCP (MultiPath TCP), en utvidgning av TCP-protokollet för att organisera TCP-anslutningar med paketleverans samtidigt över flera vĂ€gar genom olika nĂ€tverksgrĂ€nssnitt kopplade till olika IP-adresser, har fortsatt. I den nya versionen tillagd har mekanismen för att ange egna trafikhashpolicys för IPv4 och IPv6 (multipath hash policy) lagts till, vilket ger möjlighet att frĂ„n anvĂ€ndarutrymmet definiera vilka av fĂ€lten i paketen, inklusive inkapslade sĂ„dana, som kommer att anvĂ€ndas vid berĂ€kningen av hash som bestĂ€mmer vĂ€gen för ett paket;
    • Det virtuella transportprotokollet virtio har lagt till stöd för sockets SOCK_SEQPACKET (ordnad och tillförlitlig överföring av datagram);
    • Möjligheterna för mekanismen för sockets SO_REUSEPORT har utökats, vilket gör att flera lyssnande sockets kan koppla upp sig till en port för att ta emot anslutningar med spridning av inkommande förfrĂ„gningar över alla kopplade sockets med SO_REUSEPORT, vilket förenklar skapandet av multitrĂ„diga serverapplikationer. I den nya versionen har lagts till finns medel för att överföra kontrollen till en annan socket i hĂ€ndelse av fel vid behandling av en förfrĂ„gan frĂ„n den ursprungligt valda socketen (löser problemet med att enstaka anslutningar gĂ„r förlorade vid omstart av tjĂ€nster);
  • utrustning:
    • i drivrutinen amdgpu har möjligheten stöd för nya serier av AMD Radeon RX 6000 GPU:er, som utvecklas under kodnamnen "Beige Goby" (Navi 24) och "Yellow Carp", samt förbĂ€ttrad support för GPU Aldebaran (gfx90a) och APU Van Gogh. Möjlighet till samtidig anvĂ€ndning av flera eDP-paneler har lagts till. För APU Renoir har stöd för arbete med krypterade buffertar i videominnet (TMZ, Trusted Memory Zone) implementerats. Stöd för varm uttagning av grafikkort (hot-unplug) har lagts till. För GPU Radeon RX 6000 (Navi 2x) och Ă€ldre AMD GPU:er Ă€r stöd för mekanismen för energibesparing ASPM (Active State Power Management) aktiverat som standard, vilket tidigare endast aktiverats för GPU Navi 1x, Vega och Polaris;
    • stöd för SVM (shared virtual memory) har lagts till för AMD-chips baserat pĂ„ HMM (Heterogeneous memory management) subsystemet, vilket möjliggör anvĂ€ndning av enheter med egna minneshanteringsenheter (MMU, memory management unit) som kan fĂ„ tillgĂ„ng till huvudminnet. Med hjĂ€lp av HMM kan man organisera ett delat adressutrymme mellan GPU och CPU, dĂ€r GPU kan fĂ„ tillgĂ„ng till processens huvudminne;
    • början pĂ„ stöd för teknologin AMD Smart Shift, som dynamiskt Ă€ndrar parametrar för energiförbrukning för CPU och GPU i bĂ€rbara datorer med AMD chipset och grafikkort för att öka prestandan vid spel, videoredigering och 3D-rendering;
    • i i915-drivrutinen för Intel-grafikkort Ă€r inkluderad stöd för Intel Alderlake P-chips;
    • drivrutin drm/hyperv för den virtuella grafikadaptern Hyper-V har lagts till;
    • tillagd grafikdrivrutinen simpledrm, som anvĂ€nder EFI-GOP eller VESA framebuffer tillhandahĂ„llet av UEFI-firmware eller BIOS för grafisk utgĂ„ng. Huvudsyftet med drivrutinen Ă€r att möjliggöra grafisk utgĂ„ng under tidiga uppstartsfasen, innan det Ă€r möjligt att anvĂ€nda en komplett DRM-drivrutin. Drivrutinen kan ocksĂ„ anvĂ€ndas som en tillfĂ€llig lösning för utrustning som Ă€nnu inte har egna DRM-drivrutiner;
    • har lagts till stöd för allt-i-ett-datorn Raspberry Pi 400;
    • drivrutin dell-wmi-privacy för att stödja fysiska avstĂ€ngningsknappar för kameran och mikrofonen pĂ„ Dell-bĂ€rbara datorer har lagts till;
    • för Lenovo-bĂ€rbara datorer tillagd WMI-grĂ€nssnitt för att Ă€ndra BIOS-instĂ€llningar via sysfs /sys/class/firmware-attributes/;
    • utökat stöd för enheter med USB4-grĂ€nssnitt;
    • har lagts till stöd för ljudkort och codecs AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 och Texas Instruments TAS2505. FörbĂ€ttrat ljudstöd pĂ„ bĂ€rbara datorer frĂ„n HP och ASUS. Tillagda patchar för att minska fördröjningar innan ljuduppspelning börjar pĂ„ enheter med USB-grĂ€nssnitt.

KĂ€lla – opennet.ru.

KĂ€lla: linux.org.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster