Uppdatering av Linux-kÀrnan 6.14

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds slÀppet av Linux-kÀrnan 6.14. Bland de mest anmÀrkningsvÀrda förÀndringarna: ntsync-drivrutinen med synkronisering primitiva för Windows NT, konfiguration av belastningsbalansering av lÀsoperationer i Btrfs RAID1, stöd för reflink i XFS i realtime-lÀge, möjlighet till icke-cacherad buffrad I/O, dmem cgroup för begrÀnsning av GPU-minne, anvÀndning av io_uring i FUSE, delegering av attribut i NFS, stöd för atomÀr skrivning i Device mapper, acceleration av symboliska lÀnkar, hantering av skriptkörningsmöjligheter, stöd för Qualcomm Snapdragon 8 Elite-chip och drivrutinen för AMD:s NPU.

I den nya versionen har 12115 korrigeringar accepterats frÄn 1984 utvecklare, patchstorleken Àr 39 MB (förÀndringarna berörde 10170 filer, 531586 kodrader lades till, 235999 rader togs bort). I den föregÄende utgÄvan var det 14172 korrigeringar frÄn 2086 utvecklare, patchstorleken var 46 MB. Cirka 41% av alla Àndringar i 6.14 relaterar till enhetsdrivrutiner, cirka 13% av Àndringarna handlar om uppdatering av hÄrdvaruspecifik kod, 14% relaterar till nÀtverksstacken, 7% till filsystem och 4% till interna kÀrnsystem.

De viktigaste nyheterna i kÀrnan 6.14:

  • Disksubsystem, in- och utmatning och filsystem
    • I filsystemet Btrfs har stöd lagts till för nya metoder för balans av lĂ€soperationer mellan lagringsenheter i RAID1-arrayen. Förutom den tidigare belastningsfördelningen baserad pĂ„ process ID (pid) har tre nya balanslĂ€gen föreslagits i den nya versionen: "rotation" (jĂ€mn belastningsfördelning över alla lagringsenheter, detta lĂ€ge Ă€r aktiverat som standard); "latency" (belastningsfördelning med hĂ€nsyn till fördröjning, kan vara anvĂ€ndbar vid fel eller instabil drift av lagringsenheter); devid (manuell hantering). För att Ă€ndra balanslĂ€get har grĂ€nssnittet "\/sys\/fs\/btrfs\/\/read_policy" lagts till. Bland andra förĂ€ndringar i Btrfs — implementeringen av ioctl FS_IOC_READ_VERITY_METADATA.
    • En lĂ€get för icke-cachelad buffrad in- och utdata har lagts till, dĂ€r data tas bort frĂ„n sidcacheminnet sĂ„ snart lĂ€s- eller skrivoperationerna Ă€r klara. Ändringen kan vara anvĂ€ndbar nĂ€r man anvĂ€nder mycket snabba lagringsenheter, dĂ€r det Ă€r överflödigt att cacha operationer i RAM. För sĂ„dana enheter möjliggör det nya lĂ€get att undvika onödig minnesanvĂ€ndning av sidcacheminnet utan att behöva anvĂ€nda den komplicerade API:n för direkt in- och utdata (Direct I/O).
    • I fsnotify, mekanismen för att spĂ„ra Ă€ndringar i filsystemet, har en ny hĂ€ndelse FS_PRE_ACCESS lagts till, som genereras precis innan Ă„tkomst till filinnehĂ„llet. HĂ€ndelsen behandlas i synkront lĂ€ge, d.v.s. kĂ€rnan skickar hĂ€ndelsen och vĂ€ntar pĂ„ att fĂ„ ett svar. Om svaret erhĂ„lls utförs operationen, och om ett fel uppstĂ„r returnerar systemanropet ett felkod till anvĂ€ndarutrymmet. Med FS_PRE_ACCESS kan en process i anvĂ€ndarutrymmet till exempel organisera ifyllandet av en fil nĂ€r data i det lĂ„ngsamma lagret blir tillgĂ€ngliga.
    • I FUSE-undercystemet, som möjliggör skapandet av filsystemimplementationer i anvĂ€ndarutrymmet, har stöd för datadelning mellan kĂ€rnan och processen i anvĂ€ndarutrymmet lagts till med hjĂ€lp av in- och utdata-mekanismen io_uring. Ändringen gör det möjligt att öka FUSE:s prestanda genom att minska kontextbyten mellan kĂ€rnan och anvĂ€ndarutrymmet.
    • I filsystemet XFS har möjligheten att anvĂ€nda omvĂ€nd mappning (rmap, reverse-mapping) i lĂ€get med förutsĂ€gbara fördröjningar ('realtime device') lagts till. OmvĂ€nd mappning gör det möjligt att faststĂ€lla vilken fil ett givet block pĂ„ lagringsenheten anvĂ€nds för. Med hjĂ€lp av rmap i XFS har stöd för reflink-operationen implementerats för realtime-lĂ€get, vilket tillĂ„ter skapandet av kopior av filer genom att klona filmetadata och skapa en lĂ€nk till redan existerande data utan att faktiskt kopiera dem.
    • I VFS har caching av storleken pĂ„ symboliska lĂ€nkar implementerats, vilket har möjliggjort en hastighetsökning av 1,5 % vid utförandet av operationen readlink (i test med /initrd.img i ext4). Cachingen Ă€r aktiverad i FS ext4 och tmpfs.
    • I implementeringen av NFSv4.2 har stöd för delegering av filattribut lagts till, vilket gör att man kan hantera sĂ„dana attribut som Ă€ndringstid (mtime) pĂ„ NFS-klienten, utan att behöva överföra Ă€ndringar till servern. NFS har ocksĂ„ förbĂ€ttrat stödet för protokollet „LOCALIO”, vilket gör det möjligt att faststĂ€lla huruvida klienten och NFS-servern finns pĂ„ samma vĂ€rd, för att aktivera lĂ€mpliga optimeringar, som att klienten anvĂ€nder direkt in- och utmatning (Direct I/O).
    • Prestandan vid lĂ€soperationer i filsystemen NETFS, CIFS och AFS (Andrew File System) har förbĂ€ttrats.
    • I Squashfs har en direkt inlĂ€sningslĂ€ge för sidor till sidcache (SQUASHFS_FILE_DIRECT) inkluderats, vilket gör det möjligt att klara sig utan en separat read_page-cache. Ändringen har möjliggjort en minskning av den minnesanvĂ€ndning som krĂ€vs vid anvĂ€ndning av Squashfs.
    • I systemanropet statx() har flaggan STATX_DIO_READ_ALIGN implementerats för att bestĂ€mma det nödvĂ€ndiga justeringen för lĂ€soperationer frĂ„n fil.
    • I filsystemet Bcachefs har formatet för diskstrukturer uppdaterats och stabiliserats. Alla framtida formatĂ€ndringar kommer att klassificeras som valfria och realiseras som tillĂ€gg. Hastigheten för integritetskontroller av filsystemet har ökat avsevĂ€rt. Dessutom har Bcachefs förbĂ€ttrat funktionaliteten i skrivskyddat lĂ€ge; problem som ledde till minnesĂ„tkomst efter att det har frigjorts (use after free) har Ă„tgĂ€rdats; problem med reflink-pekarna i fsck har lösts; hanteringen av omstart av transaktioner har korrigerats.
    • Modulen md-linear, avsedd för att kombinera blockenheter, har Ă„terstĂ€llts. Denna modul hade tidigare förklarats som förĂ„ldrad och togs bort frĂ„n kĂ€rnan 6.8, men eftersom den visade sig vara efterfrĂ„gad har den Ă„terinförts.
    • Filsystemen F2FS och SQUASHFS har övergĂ„tt till att anvĂ€nda sidor med minnesportföljer (page folios).
    • Filsystemen OCFS2 och DLMFS har övergĂ„tt till att anvĂ€nda det nya API:et för monteringspartitionering.
    • I drivrutinen null_blk har attributet „rotational” implementerats, vilket kan stĂ€llas in via configfs och gör det möjligt att simulera arbete med enhet baserad pĂ„ roterande skivor för att förenkla testningen av kĂ€rnfunktioner.
    • I enheten Device mapper och i modulerna dm-mirror, dm-io, dm-table, dm-linear, dm-stripe och dm-raid1 har stöd för atomĂ€r skrivning implementerats.
  • Minne och systemtjĂ€nster
    • Integration into the core of the ntsync driver has been completed, implementing the symbolic device /dev/ntsync and a set of synchronization primitives used in the Windows NT kernel. Implementing such primitives at the kernel level significantly improves the performance of Windows games running via Wine. The performance gain is achieved by eliminating the overhead associated with using RPC in user space. The creation of a separate driver for the Linux kernel is due to the difficulties in correctly implementing the NT synchronization API on top of the existing kernel primitives.
    • A new DMEM cgroup controller has been added for separate accounting of memory areas of devices such as GPUs. DMEM allows the creation of separate cgroups for different tasks that work with the GPU so that they can run without affecting each other. This new feature solves the problem of forced termination of GPU operations when available memory is exhausted by accounting for reflected GPU memory and CPU memory used by drivers in separate cgroups.
    • Optimizations have been made to scale the flush operation of the TLB (Translation Lookaside Buffer) cache, used to speed up the translation of virtual addresses to physical ones. The added optimizations involve deferred updating of certain data structures during context switching, allowing for improved performance in specific tests.
    • The performance of the MGLRU (Multi-Generational LRU) mechanism has been improved, which is used to determine which memory pages are in use and which can be swapped out to the page file.
    • Ändringar frĂ„n Rust-for-Linux-grenen, som rör anvĂ€ndningen av Rust som ett andrasprĂ„k för utveckling av drivrutiner och kĂ€rnmoduler, har fortsatt att överföras (Rust-stöd Ă€r inte aktiverat som standard och leder inte till att Rust ingĂ„r bland de obligatoriska byggberoendena för kĂ€rnan). Möjligheten att anvĂ€nda macro "derive(CoercePointee)" i kĂ€rnkoden har införts, vilket möjliggör anvĂ€ndning av smarta pekare med trait-objekt. Rust-bindningar för PCI, plattformar, Open Firmware, teckenhet och vissa in-/utdatafunktioner har lagts till i kĂ€rnan. Greg Kroah-Hartman, som ansvarar för supporten för den stabila Linux-kĂ€rnvetken, beskrev den aktuella statusen som "nĂ€stan redo för att skriva en verklig drivrutin med Rust".
    • I byggscenarierna har ny kod föreslagits för att generera versioner av felsökningssymboler för laddningsmoduler, som nu anvĂ€nder information frĂ„n DWARF-felposter istĂ€llet för att direkt analysera kĂ€llkoden. Denna förĂ€ndring möjliggör versionering av felsökningssymboler för moduler skrivna i Rust. Den gamla implementeringen har ocksĂ„ behĂ„llits i kĂ€rnan, och valet av generator görs pĂ„ byggalternativsnivĂ„.
    • För PowerPC-arkitekturen har stöd för lazy preemption-lĂ€get (PREEMPT_LAZY) införts, vilket motsvarar fullt avbrytande (full preemption) för realtidsuppgifter (RR/FIFO/DEADLINE), men skjuter upp avbrytandet av vanliga uppgifter (SCHED_NORMAL) till tickgrĂ€nsen.
    • Stödet för energikonsumtionsrĂ€knare frĂ„n AMD-processorer har lagts till i prestandaprofileringssystemet "perf". Möjligheten att fungera pĂ„ system med upp till 2048 CPU-kĂ€rnor har lagts till.
    • Möjligheten att anvĂ€nda sysctl-parametern pid_max med process-ID-namnrymder (ID namespace) har införts. Parametern pid_max Ă€r avsedd för att begrĂ€nsa det maximala vĂ€rdet av process-ID (PID) och kan nu anvĂ€ndas för att begrĂ€nsa det maximalt möjliga antalet processer som körs i den angivna namnrymden. Hanteringen av parametern utförs hierarkiskt, dvs begrĂ€nsningar i externa namnrymder gĂ€ller för inre namnrymder.
    • Vid anvĂ€ndning av systemanropet execveat för att starta en process kommer filsystemet /proc nu att visa namnet pĂ„ den körda filen istĂ€llet för filbeskrivarnumret.
    • I kĂ€llkoden för kĂ€rnan (i katalogen samples/vfs) har ett verktyg för mountinfo lagts till, vilket demonstrerar anvĂ€ndningen av systemanropen statmount() och listmount().
    • I BPF-undersystemet har nya funktioner bpf_local_irq_save() och bpf_local_irq_restore() föreslagits för temporĂ€r inaktivering av avbrott pĂ„ den lokala CPU:n. Dessa funktioner kan anvĂ€ndas för att implementera strukturer vars behandling inte avbryts av avbrott.
    • I systemanropet madvise() har frigöring av sidtabeller kopplade till det frigjorda adresseringsintervallet sĂ€kerstĂ€llts vid anvĂ€ndning av flaggorna MADV_DONTNEED och MADV_FREE, eftersom tomma sidor i minnet i vissa situationer kan ta upp betydande mĂ€ngd minne.
    • För OpenRISC-arkitekturen har stöd för mekanismen för Ă„terstartbara sekvenser (rseq, restartable sequences) implementerats, avsedd för snabb atomĂ€r utförande av operationer som, vid avbrott frĂ„n en annan trĂ„d, rensas och fĂ„r en ny försökskörning.
    • Koden har omorganiserats med implementering av algoritmerna CRC32 och CRC-T10DIF, vilket inte lĂ€ngre överlappar med kryptosystemet och anropas direkt frĂ„n bibliotekets grĂ€nssnitt. Denna Ă€ndring har gjort det möjligt att förenkla koden och öka dess effektivitet.
    • I systemet för asynkron I/O io_uring har ett grĂ€nssnitt lagts till för att skicka ytterligare metadata om integritet vid utförande av lĂ€s- och skrivoperationer.
  • Virtualisering och sĂ€kerhet
    • I systemanropet execveat har flaggan AT_EXECVE_CHECK lagts till, vilket möjliggör en kontroll av filens körbarhet utan faktisk körning, men med hĂ€nsyn till sĂ€kerhetspolicyer, Ă„tkomstrĂ€ttigheter och aktiva LSM-moduler. För anvĂ€ndning tillsammans med AT_EXECVE_CHECK föreslĂ„s securebit-flaggorna SECBIT_EXEC_RESTRICT_FILE och SECBIT_EXEC_DENY_INTERACTIVE, som kan anvĂ€ndas för att begrĂ€nsa körning av skriptfiler i tolkningssprĂ„k. Flaggan SECBIT_EXEC_RESTRICT_FILE Ă„lĂ€gger lĂ€nkare och tolkar att anvĂ€nda alternativet AT_EXECVE_CHECK för att verifiera körbarheten, medan flaggan SECBIT_EXEC_DENY_INTERACTIVE förbjuder hantering av interaktiva kommandon. HuvudidĂ©n med förĂ€ndringen Ă€r möjligheten att tillĂ€mpa sĂ€kerhetspolicyer inte bara pĂ„ traditionella körbara filer, utan Ă€ven pĂ„ textfiler med skript, som kan laddas genom tolkens körning (det vill sĂ€ga ett förbud mot körning kan tillĂ€mpas inte bara vid körning av './script.sh' utan Ă€ven vid utförande som 'sh script.sh').
    • PĂ„ x86-system har stöd för sĂ€krade tidsrĂ€knare implementerats för gĂ€stsystem, vilket förhindrar Ă€ndringar av systemtiden i gĂ€stsystemet frĂ„n vĂ€rdmiljön. Denna funktion genomförs med hjĂ€lp av AMD SEV (Secure Encrypted Virtualization), som anvĂ€nds i virtualisering för att skydda virtuella maskiner mot ingrepp frĂ„n hypervisor eller administratör av vĂ€rdsystemet.
    • Det obligatoriska Ă„tkomstkontrollsystemet SELinux har fĂ„tt stöd för xperm-regler, vilket möjliggör koppling av SELinux-policys till specifika ioctl()-anrop eller netlink-meddelanden.
    • För att verifiera kĂ€rnmoduler med digital signatur anvĂ€nds algoritmen SHA512 som standard istĂ€llet för SHA1.
    • I drivrutiner för gĂ€stsystem har stöd för ARM64-arkitektur lagts till.
    • I hypervisorn KVM Arbetet med att implementera Intel TDX (Trusted Domain Extensions) för kryptering av minnet i gĂ€stsystem har fortsatt.
    • Stöd för felĂ„terstĂ€llningslĂ€ge har lagts till i virtio_blk.
  • NĂ€tverkssystemet
    • I RxRPC-protokollets implementation har möjligheten att anvĂ€nda större UDP-ramar lagts till för att öka bandbredden.
    • För TCP har stöd för algoritmen RACK-TLP lagts till för att identifiera paketförluster.
    • En ny sysctl-parameter tcp_tw_reuse_delay har lagts till, som fungerar i bindning till namnomrĂ„det (network namespace) och gör det möjligt att definiera fördröjningen innan systemet kan Ă„teranvĂ€nda ett nĂ€tverksportnummer efter stĂ€ngning av en TCP-socket.
    • Möjlighet att vĂ€lja en noggrann tidleverantör (PTP) för att skapa tidsstĂ€mplar pĂ„ PHY- och MAC-nivĂ„er har lagts till.
    • För IPsec har stöd för mekanismen för aggregering och fragmentering av inkapslade IP-paket — IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload) implementerats.
    • I nĂ€tverksocketsystemet har stöd för att överföra information om prioritet (SO_PRIORITY) i form av styrmeddelanden (cmsg — control messages) lagts till. För nĂ€tverksocketsystemet har alternativet SO_RCVPRIORITY lagts till, vilket inkluderar överföring av information om socketens prioritet i funktionen recvmsg().
  • Utrustning
    • En drivrutin för amdxdna har lagts till för de NPU (Neural Processing Unit) som Ă€r integrerade i AMD:s CPU, baserade pĂ„ XDNA-arkitekturen, avsedda för att pĂ„skynda operationer relaterade till maskininlĂ€rning. NPU baserade pĂ„ XDNA-arkitekturen finns i serierna 7040 och 8040 av AMD Ryzen-processorer, AMD Alveo V70-acceleratorer och SoC AMD Versal.
    • I drivrutin i915 har identifieringarna för nya GPU:er lagts till, en hanterare för HDMI-initieringsfel har genomförts, och tillförlitligheten för Ă„terstĂ€llning av GPU-motorer har förbĂ€ttrats pĂ„ Haswell och Ă€ldre system.
    • Arbetet med drm-drivrutinen (Direct Rendering Manager) Xe för GPU:er baserade pĂ„ Intel Xe-arkitekturen har fortsatt, vilken anvĂ€nds i Intel Arc-grafikkort och integrerad grafik, frĂ„n Tiger Lake-processorer och framĂ„t.
    • I drivrutinen Nouveau har möjligheten att överföra buffertar med loggar frĂ„n GSP-RM via debugfs lagts till.
    • I AMDGPU-drivrutinen har stöd för DRM panic-mekanismen lagts till, som visar en variant av "blĂ„ skĂ€rm av död" vid krasch. Förberedelser för stöd för den framtida serien av Radeon RX 9000-grafikkort baserade pĂ„ RDNA4-arkitekturen har fortsatt. Stödet för DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS och ISP har uppdaterats.
    • Stödet för Qualcomm-plattformen SM6150 (QCS615) har lagts till i DRM-drivrutinen msm (GPU Qualcomm Adreno).
    • I DRM-drivrutinen panfrost har stöd för SoC MediaTek MT8188 med GPU Mali-G57 lagts till.
    • I DRM-drivrutinen vc4 har stöd för SoC Broadcom BCM2712 (Raspberry Pi 5) lagts till.
    • Stödet för chipen NVIDIA Grace Blackwell 200 har lagts till i vfio-drivrutinen nvgrace-gpu.
    • Drivrutinen för Intel THC (Touch Host Controller) har lagts till, vilket anvĂ€nds för att interagera med pekskĂ€rmar och pekplattor pĂ„ vissa bĂ€rbara datorer. Stöd för Wacom-enheter med PCI-grĂ€nssnitt har lagts till. Stöd för QH Electronics spelkontroller har lagts till.
    • Stöd för ARM-plattformar, SoC och enheter har lagts till: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Stöd för SpacemiT K1 SoC baserat pĂ„ RISC-V-arkitekturen har lagts till.
    • I ljudsubsystemet ALSA för MIDI 2.0 har API:erna rawmidi och sequencer utvidgats. Stöd för ASRC (Asynchronous Sample Rate Conversion) har lagts till i API:t för att hantera komprimeringsoperationer pĂ„ ljudkortet.
    • Stöd för ljudsystem pĂ„ enheter som Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 och 18i20 har lagts till. Stöd för SteelSeries Arctis 9 trĂ„dlösa hörlurar har lagts till.

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