Uvoľnenie jadra Linux 6.13

Po dvoch mesiacoch vývoja Linus Torvalds predstavil uvoľnenie jadra Linux 6.13. Medzi najvýznamnejšie zmeny patrí režim lenivého vytláčania v plánovači úloh, podpora atomického zápisu v XFS a Ext4, mechanizmus „multigrain timestamps“, adaptívny režim zapínania poling v sieťovej subsystéme, možnosť kompilácie s optimalizáciami AutoFDO, podpora mechanizmu ochrany ARM65 Guarded Control Stack, izolácia virtuálnych strojov pomocou rozšírenia ARM CCA, oddelené zásobníky v BPF, odstránenie ReiserFS, ovládač virtual-cpufreq, netlink API net-shaper, režim montovania tmpfs s ohľadom na veľké písmená, podpora POSIX rozšírení v SMB3, ovládač AMD Cache Optimizer.

Do novej verzie bolo prijatých 14172 opráv od 2086 vývojárov, veľkosť patchu - 46 MB (zmeny sa dotkli 15375 súborov, bolo pridaných 598707 riadkov kódu, odstránených 406294 riadkov). V predchádzajúcej verzii bolo 14607 opráv od 2167 vývojárov, veľkosť patchu - 37 MB. Približne 52% všetkých predložených zmien v 6.13 sa týka ovládačov zariadení, asi 13% zmien sa vzťahuje na aktualizáciu kódu špecifického pre hardvérové architektúry, 11% súvisí so sieťovým zásobníkom, 4% - s súborovými systémami a 3% s vnútornými subsystémami jadra.

Hlavné novinky v jadre 6.13:

  • Diskový subsystém, I/O a súborové systémy
    • Bol pridaný mechanizmus „multigrain timestamps“, ktorý umožňuje získať informácie o čase zmeny alebo prístupu k súborom s presnosťou viac ako milisekundu, ale bez negatívneho vplyvu na výkon. Zvyšovanie presnosti časových pečiatok vedie k dodatočným nákladom v dôsledku zvýšenej intenzity zápisu metadát na disk, preto v navrhnutej implementácii sú presnejšie pečiatky vytvárané nie pre všetky súbory, ale iba pre tie, pre ktoré procesy požadujú takéto pečiatky prostredníctvom volania getattr().
    • Bola pridaná podpora atomických zápisových operácií, pri ktorých sa zápis údajov, ktorých veľkosť presahuje veľkosť sektora, vykonáva atomicky na pamäťových zariadeniach, ktoré poskytujú takúto možnosť. V súčasnosti je atomárny zápis implementovaný pre XFS, Ext4 v režime O_DIRECT (Direct I/O) a md RAID 0/1/10.
    • Bol navrhnutý nový mechanizmus počítania odkazov pre súbory, ktorý zabezpečuje nárast výkonu o 3-5% v pracovných záťažiach, ktoré majú viac ako 255 prúdov.
    • Implementácia súborového systému ReiserFS bola odstránená, pričom bola predchádzajúci rok vyhlásená za zastaranú.
    • Bol jarný parameter sysctl „fs.dentry-negative“, ktorý určuje politiku čistenia záznamov „dentry“ (vnútorné zobrazenie prvkov adresárov) vo VFS po odstránení súvisiacich súborov. Pre niektoré typy zaťaženia je lepšie uchovávať takéto záznamy o odstránených súboroch, zatiaľ čo pre iné je optimálnejšie ich odstrániť, a preto v jadre existuje možnosť voľby (predvolená hodnota je, že „dentry“ sa automaticky neodstraňujú).
    • Do systémového volania statmount() bol pridaný flag STATMOUNT_OPT_ARRAY, ktorý vracia zoznam opráv pre súborový systém vo forme poľa reťazcov končiacich nulovým symbolom a bez použitia únikového znaku „\000“. Bola pridaná podpora pre vrátenie podtypov FS (fs_subtype, na určenie použitia FUSE), bezpečnostných montážnych opráv a pôvodného superbloku (sb_source).
    • V OverlayFS bola pridaná možnosť určovania vrstiev prostredníctvom súborových deskriptorov namiesto názvov súborových ciest.
    • Do súborového systému tmpfs bola pridaná možnosť montovania „casefold“ na prevádzku bez ohľadu na veľkosť písmen a možnosť „strict_encoding“ na zablokovanie vytvárania súborov s názvami obsahujúcimi neplatné znaky UTF-8.
    • Bol navrhnutý nový súbor systémových volaní na správu rozšírených atribútov súborov: setxattrat(), getxattrat(), listxattrat() a removexattrat(). Na rozdiel od systémových volaní setxattr(), getxattr(), listxattr() a removexattr() nové varianty vyžadujú uvedenie súborového deskriptora adresára, na základe ktorého sa hľadá súborová cesta.
    • Do Btrfs bola pridaná ioctl-operácia BTRFS_IOC_SUBVOL_SYNC_WAIT, ktorá zahrňuje čakanie na dokončenie čistenia podobjemov, čo umožňuje vykonanie príkazu „btrfs subvolume sync“ neprivilegovaným používateľom, ktorí nemajú prístup k ioctl SEARCH_TREE (užitočné v aplikáciách na zálohovanie, ktoré čistia podobjemy). Bola pridaná ioctl-operácia ENCODED_READ na čítanie zakódovaných údajov cez io_uring, napríklad na čítanie priamo stlačených rozšírení bez dekompresie. Pokračovalo sa v prechode na používanie stránkových zväzkov (page folios). Znížila sa konkurencia zámkov („lock contention“) pri hľadaní zabudovaných spätných odkazov a pri prechádzaní vyrovnávacích pamätí rozšírení. Zvýšila sa účinnosť kompresie mapy rozšírení.
    • V súborovom systéme EROFS (Rozšíriteľný iba na čítanie), určeného na použitie na oddieloch dostupných v režime iba na čítanie, bola implementovaná možnosť použitia volieb SEEK_HOLE a SEEK_DATA v systémovom volaní lseek().
    • F2FS pridalo podporu inverzného aliasovania zariadení, umožňujúcu dočasne rezervovať oblasť v F2FS pre použitie časti blokového zariadenia v inom FS. Po dokončení vonkajšej operácie možno rezervovanú oblasť vrátiť do F2FS. Napríklad, môžete vytvoriť FS príkazom „mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdb“, následne będzie obsah zariadenia /dev/vdc rezervovaný a obrazovaný do súboru vdc.file a oddiel /dev/vdc možno použiť na svoje potreby, napríklad ho naformátovať pre iný FS. Na vrátenie rezervovaného obsahu stačí odstrániť súbor vdc.file.
    • V XFS bola pridaná podpora kvót pre realtime zariadenia. Bola pridaná podpora pre adresár s metadátami, v ktorom sú umiestnené všetky inode s metadátami.
    • V mechanizme FUSE bola zahrnutá možnosť dynamického zmeny maximálneho počtu strán (FUSE_MAX_MAX_PAGES) pomocou „sysctl fs.fuse.max_pages_limit“. Pri práci sú zapojené fólianty strán pamäte.
    • V SMB bola implementovaná podpora POSIX rozšírení pre SMB3, potrebná na ukladanie špeciálnych typov súborov, ako sú fifo, súbory zariadenia a symbolické odkazy. Bola pridaná možnosť montovania oddielu s alternatívnym heslom používaným pri rotácii hesiel. Pridaná nová možnosť montovania „cifs.upcall“ na určenie priestoru mien. Zabezpečené rozpoznávanie súborov symbolických a blokových zariadení, vytvorených v Windows NFS Server. Pridaná podpora symbolických odkazov v štýle WSL (Windows Subsystem for Linux).
    • Súborové systémy UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS a ECRYPTFS boli prekladané na používanie nového API montovania oddielov.
    • Súborové systémy ECRYPTFS, UFS a NILFS2 boli prekladané na používanie fóliantov strán pamäte.
  • Pamäť a systémové služby
    • V plánovači je implementovaný model lenivého predchádzania úlohám (PREEMPT_LAZY), ktorý zodpovedá modelu úplného predchádzania („full preemption“) pre realtime úlohy (RR/FIFO/DEADLINE), ale odkladá prekonávanie bežných úloh (SCHED_NORMAL) až do hranice tikov. Uvedený odklad vedie k zníženiu prípadu prekonávania držiteľov zámkov, čo umožňuje priblížiť výkon k konfiguráciám, ktoré používajú model dobrovoľného predchádzania (voluntary preemption). Takto nový model zachováva možnosti úplného predchádzania pre realtime úlohy, ale minimalizuje pokles výkonu pre bežné úlohy. Okrem toho nový model zjednodušuje logiku operácií prekonávania úloh v jadre, a to vylúčením spracovateľov nachádzajúcich sa v iných komponentoch jadra (mimo plánovača úloh).
    • Pri zostavovaní pomocou kompilátora Clang bola poskytnutá možnosť používania optimalizácií

      Zdroj: opennet.ru
Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster