Hlavní navigace

Co se chystá pro Linux 5.16, část třetí: nejen svižnější Zstd

26. 11. 2021
Doba čtení: 4 minuty

Sdílet

 Autor: Larry Ewing, podle licence: CC BY-SA 4.0
USB a speciálně HID (nejen Nintendo a Sony), další vylepšení pro Apple M1, rekultivace paměti na bázi Amazon DAMON, čištění jádra, aktualizace řízení spotřeby CPU AMD až v Linuxu 5.17.

USB a speciálně HID: nejen Nintendo a Sony

Mezi herními ovladači přibude s novým jádrem podpora ovladače od Nintendo Switch, resp. konkrétně Nintendo Switch Pro a Nintendo Switch Joy-Con. Podporována nyní je jak USB, tak Bluetooth konektivita a také věci jako rumble mode, LEDky atd. Ovladač byl vyvinut komunitou pomocí reverzního inženýrství, obecně společnost Nintendo není zrovna dobře spolupracující firmou na open-source (re)implementacích svých věcí.

Naopak Sony zase o kus vylepšuje svůj kernelový ovladač pro PlayStation 5 DualSense ovladač. Ten se do jádra dostal koncem loňského roku ve vydání Linuxu 5.12 a od té doby jej vývojáři Sony dále vylepšují. Verze v Linuxu 5.16 přinese například podporu LEDek, jejíž autorem je Roderick Colenbrander ze Sony.

Jinak také tato verze jádra nabídne podporu Apple Magic Keyboard 2021 za pomoci ovladače, který nepodporuje Apple. V rámci HID zařízení nebude chybět také NitroKey FIDO U2F a spousta dalších věcí. Vše shrnuje Phoronix, detaily lze vyčíst z pull requestu.

Obecně v rámci podpory USB rozhraní (a také Thunderbolt) přibude do jádra podpora správy napájení XHCI řadičů na platformě AMD Yellow Carp (mobilní APU rodiny Rembrandt), což potěší skoro každého s notebookem s novějším AMD (Ry)zenem. Naopak nic velkého se neděje ani v podpoře USB 4, ani z hlediska USB/Thunderboltu, jak v pull requestu uvádí Greg Kroah-Hartman, hlavně se pucoval kód a přidávala pdopora nového hardwaru.

Na seznam však přidejme pokračující práce na podpoře ARMů od Apple, kde Linux 5.16 přinese nejnovější patche od Svena Petera (kód v rámci podpory USB Type-C TIPD zahrnuje nyní i Apple CD321X, které jsou založeny na TI TPS 6598×).

Další vylepšení pro Apple M1

Vedle USB si architektura Apple M1 polepší i v podpoře jejího PCI Express. Do jádra míří ovladač zprovozňující Apple Silicon PCIe, za ním pak stojí Alyssa Rosenzweig a Marc Zyngier. Jelikož na PCI Express je toho u M1 navěšeno opravdu hodně, z této věci se později vyvine i podpora USB Type-A, Ethernetu, WiFi či Bluetooth. Prozatím se primárně bavíme o Apple M1, větší varianty této architektury, tedy Apple M1 Pro a M1 Max budou o něco zpožděny.

Jinak Phoronix ještě doplňuje informaci o podpoře PCI Express u SoC Huawei/HiSilicon Kirin 970 a MediaTek MT7621. Jiné novinky v subsystému PCI jsou spíše menšího charakteru. Více v pull requestu Bjorna Helgaase.

Vylepšení Zstd přinese vyšší výkon

Již tak poměrně rychlý kompresní algoritmus Zstd dále s Linuxem 5.15 zrychlí. Většina rychlostních výhod Zstd nyní plyne z implementací mimo samotné jádro, jak dodává Phoronix, kód přímo v kernelu je poměrně vousatý (stáří zhruba 4 roky).

To se změní, implemetnace Zstd v jádru bude rychlejší, velké přepracování kódu bylo zasláno do příslušné větve před necelými dvěma týdny. Jádro tím dostává nově wrapper API pro Zstd, které by navíc mělo do budoucna umožnit jednodušší aktualizace a automaticky generovaný kód vycházející z upstreamového kódu samotného projektu Zstd.

Již s Linuxem 5.16 má kernelový kód přinést 15% zrychlení dekomprese Zstd v Btrfs, stejné to bude u SquashFS, pro F2FS platí zrychlení dokonce až o 20 %, zRAM pak 30 % a dekomprese samotného obrazu kernelu zabaleného Zstd zrychlí o 35 %. Další výkonnostní optimalizace jsou již v přípravě pro nejbližší budoucnost. Více podrobností ve velkém balíku kódu, u kterého si Linus vyžádal nějaký čas navíc, aby jej pořádně prozkoumal a zhodnotil.

Čištění jádra

Jinak se sluší na závěr dodat, že vedle obvyklého přidávání nového kódu a bobtnání zejména podpory různých GPU v rámci ovladačů jako AMDGPU (toho ale s jádrem 5.16 moc nebude, nic zásadního se v oblasti GPU hardwaru tak jako tak neděje), dozná Linux 5.16 také určité menší zeštíhlení.

V tuto chvíli to vypadá na redukci o nějakých 20 tisíc řádků zdrojového kódu, například v ovladači r8188eu (a dalších pro produkty Realtek), případně fbtft, rts5208, vt6655, vc04_services, WFX (ovladač Silicon Laboratories WiFi Linux, který se nyní konečně možná dostane z větve mimo hlavní jádro), mt7621 či většině ovladačů subsystému. Na pucování kódu od zbytečností pracovala řada vývojářů, podrobnosti shrnuje Greg Kroah-Hartman v pull requestu.

Rekultivace paměti na bázi Amazon DAMON

Mechanismus pro memory reclamation založený na frameworku DAMON vyvinutém v Amazonu míří do jádra Linux 5.16. samotný DAMON (data monitoring access) byl začleněn s předchozí/aktuální verzí Linux 5.15. Na něm nyní staví mechanismus, který je srdcem sady patchů Andrew Mortona pro jádro 5.16. Tyto patche byly laděny v průběhu posledních měsíců a začleněny před 14 dny.

Jde o mechanismus proaktivního uvolňování paměti, který by měl zefektivnit běh pod menším zatížením paměťového subsystému. DAMON je v něm používán pro rozhodování, které stránky paměti je možné uvolnit. Míra úspory měřená na jádru 5.13 dosahovala kolem 40 % s mírně vyšším zatížením CPU (v malých jednotkách procent).

Míru uvolňování lze nastavit uživatelsky parametrem (lze například nastavit minimální stáří dat v paměti, časový údaj po kterém je možné blok označit za vhodný k uvolnění, velikost paměti pro uvolnění, minimální a maximální čas před kontrolou watermarků, interval vzorkování atd.). Podrobnosti lze vyčíst z Gitu.

Aktualizace řízení spotřeby CPU AMD až v Linuxu 5.17

Do Linuxu 5.16 zamířila již čtvrtá verze ovladače řídícího škálování frekvencí / P-stavy pro cesorů AMD ( amd-pstate). Ta by měla vésti k dalšímu zefektivnění řízení spotřeby procesoru generací Zen 2 a novějších, přináší totiž podporu ACPI CPPC. Na vývoji s AMD spolupracovala společnost Valve, jíž APU od AMD pohání novou přenosnou konzoli Steam Box.

Vedle CPPC tato verze ovladače přináší možnost vypnutí podpory sdílené paměti a další nízkoúrovňová vylepšení, plus čištění kódu ovladače. Načasování je však takové, že začlenění nestihne proběhnout s jádrem 5.16, objeví se tedy nejspíše až v Linuxu 5.17.

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.