Spoločnosť Oracle predstavila prvé stabilné vydanie Unbreakable Enterprise Kernel 8 (UEK R8), variantu jadra Linux vyvíjaného pre použitie v distribúcii Oracle Linux ako alternatívu k štandardnému balíku s jadrom z Red Hat Enterprise Linux. Jadro je dostupné len pre architektúry x86_64 a ARM64 (aarch64). Zdrojový kód jadra, vrátane rozdelenia na jednotlivé opravy, bol publikovaný v verejnom Git repozitári Oracle.
Balík Unbreakable Enterprise Kernel 8 je založený na jadre Linux 6.12 (vydanie UEK R7 bolo založené na jadre 5.4, a v beta verzii RHEL 10 bolo navrhnuté jadro 6.11), ktoré je doplnené o nové funkcie, optimalizácie a opravy, a tiež bola overená kompatibilita s väčšinou aplikácií pracujúcich v RHEL, optimalizované pre prácu s priemyselným softvérom a hardvérom Oracle. Inštalačné a src balíky s jadrom UEK R8 sú pripravené pre Oracle Linux 9.5 (neexistujú žiadne prekážky na používanie tohto jadra v podobných verziách RHEL, CentOS, Alma Linux a Rocky Linux).
Kľúčové novinky Unbreakable Enterprise Kernel 8:
- Bolo zmenené rozdelenie komponentov jadra UEK na jednotlivé balíky. Moduly jadra sú oddelené od základného obrazu jadra a sú zahrnuté v kolekciách dodávaných v samostatných balíkoch: kernel-uek-modules-core (základné minimum), kernel-uek-modules (pre serverov), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb a kernel-uek-modules-wireless. Sprievodné utilitky boli presunuté z základného balíka kernel-uek-core do samostatného balíka kernel-uek-tools. Konfiguračné súbory so zoznamom zakázaných na načítanie modulov boli premenované z ‘blacklist’ na ‘denylist’ v rámci iniciatívy za používanie inkluzívnej terminológie.
- Pre systémy ARM Ampere, používané v Oracle Cloud, bola vytvorená samostatná zostava jadra kernel-uek64k, základná veľkosť stránok pamäte v ktorej bola zvýšená z 4 na 64 KB.
- Pridaná podpora poskytovaná v Intel SGX2 (Software Guard Extensions) hardvérovej realizácie mechanizmu EDMM (Enclave Dynamic Memory Management), ktorá umožňuje spravovať prístup k jednotlivým stránkam pamäte enklávy a dynamicky pridávať/odstraňovať stránky pamäte pre enklávu.
- V ovládači Intel QAT s podporou zariadení Intel Quick Assist Technology (QAT) bola pridaná podpora 4. generácie procesorov Intel Xeon.
- Bola pridaná systém na zistenie rozdelených zámkov („split-lock“), ktoré vznikajú pri prístupe k nevyrovnaným dátam v pamäti, pretože pri vykonávaní atomárnej inštrukcie sa dáta prekrývajú na dvoch líniách CPU cache. Takéto zámky vedú k významnému poklesu výkonu (o 1000 cyklov pomalšie ako atomárna operácia s dátami, ktoré sa nachádzajú na jednej línii cache).
- Bol implementovaný nový spôsob ochrany pred zraniteľnosťou Retbleed v CPU Intel a AMD, využívajúci sledovanie hĺbky volaní, ktoré nespomaľuje výkon tak, ako predchádzajúca ochrana proti Retbleed.
- Na systémoch x86 bola zabezpečená súčasná aktivácia sekundárnych jadier CPU, čo umožnilo skrátiť čas zavádzania jadra na systémoch s veľkým počtom jadier.
- Bol pridaný parameter príkazového riadku jadra "ia32_emulation", ktorý umožňuje počas štartovania zapínať a vypínať podporu emulácie 32-bitového režimu v jadrách zostavených pre architektúru x86-64.
- Predvolene namiesto CFS (Completely Fair Scheduler) bol použitý plánovač úloh EEVDF (Earliest Eligible Virtual Deadline First). Pri výbere nasledujúceho procesu na vykonávanie nový plánovač zohľadňuje procesy, ktoré dostali menej procesorových zdrojov, alebo dostali nezaslúžene veľa procesorového času. V prvom prípade sa vynúti prevod kontroly na proces, zatiaľ čo v druhom prípade sa naopak odloží. Starý plánovač CFS používal na určenie procesov vyžadujúcich osobitnú pozornosť heuristiku a jemné nastavenia, zatiaľ čo nový plánovač ich sleduje jasnejšie a nevyžaduje jemné ladenie. EEVDF zníži oneskorenia pri vykonávaní úloh, s ktorými mal CFS problémy s plánovaním.
- Pokračovala dodávka systému dynamickej ladenia DTrace 2.0, ktorý prešiel na používanie subsystému jadra eBPF. DTrace 2.0 funguje nad eBPF, rovnako ako existujúce nástroje sledovania v Linuxe.
- V hypervízore KVM je povolené používanie až 4096 virtuálnych CPU (VCPU).
- Pokračovalo využívanie KTLS, implementácie protokolu TLS na úrovni jadra.
- Implementácia generátora pseudonáhodných čísel RDRAND, ktorý zodpovedá za prácu zariadenia /dev/random, bola aktualizovaná na použitie hash funkcie BLAKE2s namiesto SHA1 pre operácie zmiešavania entropie. Táto zmena umožnila zvýšiť bezpečnosť generátora pseudonáhodných čísel. Na urýchlenie získavania náhodných čísel prostredníctvom systémového volania getrandom() bol nasadený mechanizmus vDSO (virtuálny dynamicky zdieľaný objekt), ktorý prenáša spracovanie systémového volania z jadra do používateľského priestoru, aby sa predišlo prepínaniu kontextu.
- Pridaná podpora rozšírenia BIG TCP, ktoré umožňuje zvýšiť maximálnu veľkosť TCP paketu na 4GB s cieľom optimalizovať prácu vysokorýchlostných vnútorných sietí dátových centier. Takéto zvýšenie veľkosti paketu pri 16-bitovej veľkosti poľa v hlavičke sa dosahuje implementáciou „jumbo“ paketov, kde je veľkosť v IP hlavičke nastavená na 0 a skutočná veľkosť je zaslaná v samostatnom 32-bitovom poli v pripojenej hlavičke.
- Pre sieťové sokety bola implementovaná možnosť SO_RESERVE_MEM, ktorá umožňuje rezervovať pre soket určitý objem pamäte, ktorý zostane vždy dostupný pre soket a nebude odobraný. Použitie tejto možnosti umožňuje zvýšiť výkon znížením operácií alokácie a uvoľnenia pamäte v sieťovom stacku, najmä za podmienok nedostatku pamäte v systéme.
- Optimalizácia výkonu plánovača paketov fq (Fair Queuing) umožnila zvýšiť priepustnosť o 5 % pri vysokých zaťaženiach v teste tcp_rr (TCP Request/Response) a o 13 % pri neobmedzenom toku UDP paketov.
- Preorganizácia sieťových štruktúr jadra bola vykonaná na zlepšenie efektivity kešovania údajov procesorom, čo umožnilo zvýšiť výkon TCP stacku na systémoch obsluhujúcich veľké množstvo paralelných požiadaviek.
- Pridaná podpora knižnice ASMLib 3 pre automatické riadenie úložiska v databázovom systéme Oracle.
- Bola vykonaná práca na optimalizácii výkonu a zvýšení bezpečnosti mechanizmu asynchrónneho vstupu/výstupu io_uring. Pridali sa optimalizácie založené na io_uring pre FS XFS a Ext4, ktoré umožňujú paralelné priame zapisovanie do súboru v niekoľkých vláknach.
- Zlepšená podpora súborového systému Btrfs. Pre zariadenia s podporou trim/discard je predvolene aktivovaná možnosť montovania „discard=async“, ktorá umožňuje vykonávať tieto operácie okamžite pre všetky FS v asynchrónnom režime. Pridaná podpora zasielania a prijímania komprimovaných údajov bez konverzií. Pridaná podpora zápisu blokmi väčšími než 64 KB. Zjednodušené sledovanie kvót. Realizovaná podpora montovania klonovaných zariadení. Zlepšené kontroly zápisu v režime NOCOW (priepustnosť vzrástla o 9 %). Pridané možnosti montovania „ignoremetacsums“ a „ignoresuperflags“ na ignorovanie neplatných kontrolných súm metadát a vlajok superbloku. Zabezpečené vykonávanie úloh na odstránenie zariadení, vyváženie a presun blokov v paralelnom režime.
- Vo FS XFS je povolené používať veľkosť bloku, ktorá presahuje veľkosť stránky pamäte. Pridané veľké počítadlá extenzióv pre veľmi veľké virtuálne disky. Pridaný režim atomárneho potvrdenia (commit) obsahu súborov. Navrhnutá experimentálna implementácia kontroly (fsck) a obnovy FS v online režime.
- V NFS je predvolene aktivované používanie operácie READ_PLUS, definovanej v špecifikácii NFS 4.2 a používa sa na efektívnejšie čítanie údajov zo súborov, ktoré obsahujú prázdne miesta.
- Systém správy pamäte bol prevedený na používanie štruktúry údajov folios (folio stránky pamäte). Folios sú podobné zlúčeným stránkam pamäte (compound pages), ale líšia sa vylepšenou sémantikou a prehľadnejšou organizáciou práce.
- Pre operácie mapovania pamäte bola využitá štruktúra údajov „maple tree“, ktorá sa označuje ako efektívnejšia náhrada za štruktúru „red-black tree“. Maple tree je variant B-stromu, ktorý podporuje indexáciu v rozsahu hodnôt a je navrhnutý na efektívne využitie cache. moderných procesorov.
- Vo mmap boli implementované zamykania na úrovni jednotlivých VMA (Virtual Memory Area), ktoré umožňujú zvýšiť výkon viacosových aplikácií.
- Pridaná štruktúra údajov ptdesc, optimalizujúca prácu s tabuľkami strán pamäte rozdelením štruktúr s metadátami a údajmi pre stránky pamäte.
Zdroj: opennet.ru
