Release av Linux-kÀrna 5.14

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds release av Linux-kÀrna 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 prioritetskontroller för I/O för cgroup, schemalÀggningslÀge SCHED_CORE, och infrastruktur för att skapa laddare av verifierade BPF-program.

Den nya versionen innehÄller 15883 korrigeringar frÄn 2002 utvecklare, patchstorleken Àr 69 MB (Àndringarna berör 12580 filer, 861501 kodrader har lagts till och 321654 kodrader har tagits bort). Cirka 47% av alla förÀndringar i 5.14 Àr relaterade till enhetsdrivrutiner, ungefÀr 14% av förÀndringarna gÀller uppdatering av kod som Àr specifik för hÄrdvaruarkitekturer, 13% Àr relaterade till nÀtverksstacken, 3% till filsystem och 3% till interna subsystem i kÀrnan.

Huvudsakliga nyheter:

  • Disksubsystem, in- och utmatning och filsystem
    • För cgroup har en ny I/O-prioriteringkontroller — rq-qos — implementerats, som kan hantera prioriteten för behandlingen av förfrĂ„gningar frĂ„n blockenheter som genereras av medlemmarna i varje cgroup. Stöd för den nya prioriteringskontrollen har lagts till I/O-schemalĂ€ggaren mq-deadline.
    • I filsystemet ext4 har en ny ioctl-kommando EXT4_IOC_CHECKPOINT implementerats, som tvingar diskning av alla vĂ€ntande transaktioner frĂ„n loggen och de relaterade buffertarna, samt överskriver det omrĂ„de som anvĂ€nds av loggen i lagringen. Ändringen har förberetts inom ramen för initiativet att förhindra lĂ€ckage av information frĂ„n filsystem.
    • I Btrfs har prestandaoptimeringar genomförts: genom att utesluta onödig loggning av utökade attribut under fsync har prestandan för intensiva operationer med utökade attribut ökat med upp till 17%. Dessutom har full synkronisering avbrutits vid utförande av avskĂ€rningsoperationer som inte berör extens och minskat tidsĂ„tgĂ„ngen för operationen med 12%. En instĂ€llning har lagts till sysfs för att begrĂ€nsa in- och utgĂ„ngskapaciteten vid kontroll av FS. ioctl-anrop för att avbryta operationer för storleksĂ€ndring och borttagning av enheten har lagts till.
    • I XFS har implementeringen av buffertcachets omarbetats, vilket har övergĂ„tt till allokering av minnessidor i batchlĂ€ge. Effektiviteten i cachearbetet har ökat.
    • I F2FS har en option lagts till för att arbeta i skrivskyddat lĂ€ge och implementerats en cache-lĂ€gesfunktion för komprimerade block (compress_cache) för att öka prestandan vid slumpmĂ€ssig lĂ€sning. Stöd för komprimering av filer som Ă„terspeglas i minnet genom operationen mmap() har lagts till. En ny monteringsoption nocompress har föreslagits för att selektivt stĂ€nga av filkomprimering efter mask.
    • I exFAT-drivrutinen har arbete utförts för att förbĂ€ttra kompatibiliteten med lagringsenheter frĂ„n vissa digitalkameror.
    • Ett systemanrop, quotactl_fd(), har lagts till, vilket möjliggör hantering av kvoter inte via en speciell enhetsfil, utan genom att ange en filbeskrivare kopplad till filsystemet som kvoten gĂ€ller.
    • Gamla drivrutiner för blockenheter med IDE-grĂ€nssnitt har tagits bort frĂ„n kĂ€rnan, som lĂ€nge har ersatts av libata-subsystemet.
    • Drivrutinen "raw", som ger 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 applikationer med hjĂ€lp av flaggan O_DIRECT.
  • Minne och systemtjĂ€nster
    • En ny schemalĂ€ggningslĂ€ge SCHED_CORE har implementerats i schemalĂ€ggaren som möjliggör styrning över vilka processer som kan köras tillsammans pĂ„ en CPU-kĂ€rna. Varje process kan tilldelas en cookie-ID som definierar en förtroendeomrĂ„de mellan processerna (till exempel tillhörighet till en anvĂ€ndare eller en behĂ„llare). Vid organisering av kodexekvering kan schemalĂ€ggaren se till att endast processer relaterade till samma Ă€gare delar pĂ„ en CPU-kĂ€rna, vilket kan anvĂ€ndas för att blockera vissa attacker av typen Spectre genom att förhindra körning av bĂ„de betrodda och icke-betrodda uppgifter i samma SMT-trĂ„d (Hyper Threading).
    • För cgroup har stöd för operationen kill implementerats, vilket gör att alla processer kopplade till gruppen kan avslutas samtidigt (skicka SIGKILL) genom att skriva "1" i den virtuella filen cgroup.kill.
    • Funktionerna relaterade till upptĂ€ckten av delade lĂ„s ("split lock") har utvidgats, vilket uppstĂ„r vid Ă„tkomst till ojusterade data i minnet eftersom data under utförandet av en atomĂ€r instruktion korsar tvĂ„ CPU-cachelinjer. SĂ„dana lĂ„s leder till en betydande prestationsoch förut fanns möjligheten att tvĂ„ngsavsluta den applikation som orsakade lĂ„set. I den nya versionen har en kĂ€rnkommandoradsparameter "split_lock_detect=ratelimit:N" lagts till, vilket gör det möjligt att definiera systemomfattande grĂ€nser för intensiteten av lĂ„soperationer per sekund, efter överskridandet av vilket en process som blivit en kĂ€lla till delat lĂ„s istĂ€llet för att avslutas, kommer att stoppas i 20 ms.
    • I cgroup-bandbreddskontrollern CFS (CFS bandwidth controller), som bestĂ€mmer hur mycket processortid som kan tilldelas varje cgroup, har möjligheten att definiera grĂ€nser begrĂ€nsade av en angiven giltighetstidsperiod införts, vilket möjliggör bĂ€ttre reglering av latenskĂ€nsliga belastningar. 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 processgrupp att varje 100 ms anvĂ€nda 50 ms CPU-tid.
    • Den initiala infrastrukturen för att skapa BPF-programladdare har lagts till, vilket i framtiden kommer att möjliggöra uppladdning av endast BPF-program som Ă€r signerade med en pĂ„litlig digital nyckel.
    • En ny futex-operation FUTEX_LOCK_PI2 har lagts till, vilken anvĂ€nder en monoton timer för att berĂ€kna tidsgrĂ€nsen som tar hĂ€nsyn till den tid systemet varit i vilolĂ€ge.
    • För RISC-V-arkitekturen har stöd för stora minnessidor (Transparent Huge-Pages) genomförts samt möjligheten att anvĂ€nda mekanismen KFENCE för att upptĂ€cka fel vid minneshantering.
    • I systemanropet madvise() har flagg MADV_POPULATE_READ och MADV_POPULATE_WRITE lagts till för att generera "page fault" för alla minnessidor som Ă„terspeglas för lĂ€s- eller skrivoperationer, utan att faktiskt lĂ€sa eller skriva (prefault). AnvĂ€ndningen av flaggorna kan vara till nytta för att minska fördröjningar i programmet, genom att proaktivt köra "page fault"-hanteraren för alla oallokerade sidor utan att vĂ€nta pĂ„ faktisk Ă„tkomst.
    • I enhetstestningssystemet kunit har stöd för att köra tester i QEMU-miljö lagts till.
    • Nya spĂ„rningsverktyg har lagts till: "osnoise" för att spĂ„ra fördröjningar i applikationer orsakade av avbrottshantering, och "timerlat" för att ge detaljerad information om fördröjningar vid vĂ€ckning pĂ„ grund av timer-signaler.
  • Virtualisering och sĂ€kerhet
    • Ett systemanrop, memfd_secret(), har lagts till, vilket möjliggör skapandet av ett privat minnesomrĂ„de i ett isolerat adressutrymme, synligt endast för Ă€garprocessen, vilket inte Ă„terspeglas i andra processer och inte Ă€r direkt tillgĂ€ngligt för kĂ€rnan.
    • I systemet för filtrering av systemanrop seccomp, har möjligheten att anvĂ€nda en atomĂ€r operation för att skapa en filbeskrivare för en isolerad uppgift och returnera den vid hantering av systemanrop lagts till för att hantera blockeringshanterare i anvĂ€ndarrummet. Den föreslagna operationen löser problemet med avbrott av hanteraren i anvĂ€ndarrummet vid ankomst av signaler.
    • En ny mekanism för att hantera resursbegrĂ€nsning i anvĂ€ndar-ID-namnrymden har lagts till, vilken kopplar separata rlimit-rĂ€knare till anvĂ€ndaren i "user namespace". Ändringen löser problemet med tillĂ€mpning av gemensamma resurserĂ€knare nĂ€r en anvĂ€ndare startar processer i olika behĂ„llare.
    • I hypervisorn KVM För ARM64-system har möjligheten att anvĂ€nda MTE (MemTag, Memory Tagging Extension) i gĂ€stdatorer lagts till, vilket möjliggör koppling av taggar till varje minnesallokeringsoperation och organiserar kontroll av riktigheten vid anvĂ€ndning av pekare för att blockera exploatering av sĂ„rbarheter orsakade av Ă„tkomst till redan frigjorda minnesblock, buffertöverflöd, Ă„tkomst innan initiering och utanför aktuell kontext.
    • De verktyg för pekarautentisering (Pointer Authentication) som tillhandahĂ„lls av ARM64-plattformen kan nu konfigureras separat för kĂ€rnan och anvĂ€ndarutrymmet. 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 stöd lagts till för att anvĂ€nda drivrutiner för PCI-enheter med en virtuell PCI-buss, som implementeras av PCI-over-virtio-drivrutinen.
    • För x86-system har stöd lagts till för det para-virtualiserade enheten virtio-iommu, som möjliggör att skicka IOMMU-förfrĂ„gningar, sĂ„som ATTACH, DETACH, MAP och UNMAP, över virtio-transporter utan emulering av minnessidan.
    • För Intel-CPU:er, frĂ„n Skylake-familjen till Coffee Lake, Ă€r anvĂ€ndning av Intel TSX (Transactional Synchronization Extensions) som standard inaktiverat. Dessa tillĂ€gg erbjuder medel för att förbĂ€ttra prestandan av flertrĂ„dade applikationer genom att dynamiskt undvika onödiga synkroniseringsĂ„tgĂ€rder. TillĂ€ggen Ă€r inaktiverade pĂ„ grund av risken för Zombieload-attacker som manipulerar lĂ€ckage av information genom sidokanaler som uppstĂ„r under drift av den asynkrona avbrottsmekanismen (TAA, TSX Asynchronous Abort).
  • NĂ€tverkssystemet
    • Integrationen i MPTCP (MultiPath TCP) har fortsatt, ett protokolltillĂ€gg för TCP som möjliggör att TCP-anslutningar levererar paket samtidigt över flera rutter via olika nĂ€tverksgrĂ€nssnitt som Ă€r kopplade till olika IP-adresser. Den nya versionen har lagt till mekanismer för att definiera egna trafikhashpolicyer för IPv4 och IPv6 (multipath hash policy), vilket ger möjlighet för anvĂ€ndarutrymmet att specificera vilka fĂ€lt i paketen, inklusive inkapslade, som ska anvĂ€ndas för att berĂ€kna hash-vĂ€rdet som bestĂ€mmer vĂ€gen för paketet.
    • I den virtuella transporten virtio har stöd lagts till för SOCK_SEQPACKET-sockets (ordnad och pĂ„litlig överföring av datagram).
    • Möjligheterna för socket-mekanismen SO_REUSEPORT har utökats, vilket gör att flera lyssnande sockets kan ansluta till en och samma port för att ta emot anslutningar med en fördelning av inkommande förfrĂ„gningar över alla anslutna sockets via SO_REUSEPORT, vilket förenklar skapandet av flertrĂ„dade serverapplikationer. I den nya versionen har medel lagts till för att överföra kontrollen till en annan socket vid fel under behandling av en begĂ€ran av den ursprungligen valda socketen (löser problemet med förlust av enskilda anslutningar vid omstart av tjĂ€nster).
  • Utrustning
    • I drivrutin amdgpu Ă€r stöd för nya serier av GPU AMD Radeon RX 6000 implementerat, som utvecklas under kodnamnen "Beige Goby" (Navi 24) och "Yellow Carp", samt förbĂ€ttrat stöd för GPU Aldebaran (gfx90a) och APU Van Gogh. Möjligheten att arbeta med flera eDP-paneler samtidigt 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 varmkoppling av grafikkort (hot-unplug) har lagts till. För GPU Radeon RX 6000 (Navi 2x) och Ă€ldre GPU AMD Ă€r stöd för energihanteringsmekanismen ASPM (Active State Power Management) som tidigare endast aktiverades för GPU Navi 1x, Vega och Polaris nu aktiverat som standard.
    • För AMD-chips har stöd för delad virtuellt minne (SVM, shared virtual memory) baserat pĂ„ HMM (Heterogeneous memory management) lagts till, vilket möjliggör anvĂ€ndning av enheter med egna minneshanteringsmoduler (MMU, memory management unit) som kan fĂ„ Ă„tkomst till huvudminnet. Med hjĂ€lp av HMM kan ett gemensamt adressutrymme mellan GPU och CPU organiseras, dĂ€r GPU kan fĂ„ Ă„tkomst till huvudminnet för processen.
    • Stöd för teknologin AMD Smart Shift har lagts till, vilket dynamiskt Ă€ndrar strömningsparametrarna för CPU och GPU pĂ„ bĂ€rbara datorer med AMD-chipset och grafikkort för att maximera prestandan vid spel, videoredigering och 3D-rendering.
    • I drivrutinen i915 för Intel-grafikkort har stöd för Intel Alderlake P-chips aktiverats.
    • Drivrutinen drm/hyperv för den virtuella grafiska adaptern Hyper-V har lagts till.
    • Stöd för Raspberry Pi 400 allt-i-ett-datorn har lagts till.
    • Drivrutinen dell-wmi-privacy har lagts till för att stödja hĂ„rdvarubrytare för kamera och mikrofon i Dell-bĂ€rbara datorer.
    • För Lenovo-bĂ€rbara datorer har WMI-grĂ€nssnitt för att Ă€ndra BIOS-instĂ€llningar via sysfs /sys/class/firmware-attributes/ lagts till.
    • Stödet för enheter med USB4-grĂ€nssnitt har utökats.
    • Stöd för ljudkort och codecs som AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 och Texas Instruments TAS2505 har lagts till. Stödet för ljud pĂ„ bĂ€rbara datorer frĂ„n HP och ASUS har förbĂ€ttrats. Patchar har lagts till för att minska fördröjningar innan ljuduppspelningen pĂ„börjas pĂ„ enheter med USB-grĂ€nssnitt.

KĂ€lla: opennet.ru

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