Hlavní navigace

Linuxové jádro 5.12 přinese rychlejší Btrfs a podporu Ryzenů 5000

19. 2. 2021
Doba čtení: 6 minut

Sdílet

 Autor: Larry Ewing / Simon Budig
Jádro 5.11 je pár dní venku a tak se objevují další a další novinky, které zamíří do budoucího Linuxu 5.12. Už dnes je z toho úctyhodný přehled novinek, který se bude samozřejmě i nadále rozrůstat.

Síťová vylepšení

Za nejnovější velkou várkou vylepšení zaslaných do Linuxu 5.12 stojí David Miller. Implementují například RFC6056 (alias Recommendations for Transport-Protocol Port Randomization), randomizace portu tedy bude lepší v souladu s tímto RFC, které popisuje několik jednoduchých a současně efektivních metod (dodává David) pro výběr klientova čísla portu, což snižuje šanci, že číslo odhadne útočník. Nejde samozřejmě o náhradu nějakých šifrovacích metod, na druhou stranu implementace tohoto RFC nestojí v podstatě skoro žádné zdroje.

Pro oblíbený levný gigabitový LAN řadič Realtek RTL8169 přibude v jádrem 5.12 podpora The Desktop and mobile Architecture for System Hardware, zkráceně DASH – na Windows toto mimochodem Realtek podporuje už víc jak 10 let. DASH je sadou specifikací založených na standardu webových služeb DMTF (Distributed Management Task Force) a v jeho rámci by v ideálním případě mohlo být možné kombinovat DASH-standardizované produkty jako čipsety + NIC + BIOSy.

Dále v příštím jádru najdeme podporu atomických operací u eBPF, rozličných PHY jako Broadcom BCM72116 či Microchip KS8851, switche Broadcom BCM4908 (quad-core ARMv8 SoC navržené pro použití jako bezdrátový AP), podporu nového železa od Intelu v rámci ovladače IWLWIFI, Bluetooth řadiče Intel „Garfield Peak“ atd.

Btrfs zase rychlejší, navíc Working Zoned Mode

David Sterba ze SUSE do Linuxu 5.12 zaslal aktualizace souborového systému Btrfs, na kterých pracovalo nemálo vývojářů. Opět zde najdeme výkonnostní optimalizace (například rychlejší flushing, který vede k vyššímu datovému toku u náhodných zápisů; také preemptivní flushing, méně locking contention, lepší vyhýbání se zásekům při mazání dat atd.), dále pak některé nové vlastnosti. Celkově bychom měli vidět ~7% zrychlení při vysokém průtoku dat, resp. o 20 % nižší latence.

Přibývá také podpora zónového režimu pro zařízení pracující s SMR/ZBC/ZNS (zde bylo vůbec nejvíc změn zdrojového kódu), dále je zde podpora sub-page block size (zde se dále pracuje na vylepšeních) a pár dalších drobností.

Podpora Dynamic Preemption

Aktualizací dozná i scheduler kernelu. Ingo Molnar zaslal patche, které kromě jiného implementují PREEMPT_DYNAMIC, díky čemuž může kernel používat tento režim během bootu/run-time. Nastavení řeší předvolba CONFIG_PREEMPT_DYNAMIC s položkou setting preempt= nastavitelnou na none / voluntary / full. To a další detaily zaslaných aktualizací, jsou k dispozici v přehledu.

Clang LTO zatím bez 64bit x86

Na začlenění čeká pull request implementující Clang Link-Time Optimizations (LTO), kdy LTO by mohlo být následně možné používat k sestavování kernelu. Věc je zatím k dispozici pro chystaný Linux 5.12 pro 64bit ARM, platforma x86_64 by se mohla dočkat s verzí Linux 5.13. Díky LTO by měl být výstup z Clangu zase o něco rychlejší, je také nezbytný pro využití Control-Flow Integrity (CFI) v rámci Clangu.

Díky LTO se může kompilátor postarat o optimalizace už během link fáze pro celý program, ne pro jednotlivé soubory. Clang LTO pro Linux pak podporuje jak plné LTO, tak LLVM ThinLTO. Již dříve pak Linus odmítl snahy o implementaci GCC LTO, takže GCC zatím tuto podporu v jádru nemá. Na Clang LTO pracuje Google a je tu nemalá, šance, že to klapne i z toho důvodu, že kód je poměrně dobře prověřen již tříletou praxí v sestavování jader pro Android pomocí Clang LTO. Jistě i v tom můžeme hledat příčinu, proč 64bit ARM ano, ale x86_64 zatím ne.

Dynamic Thermal Power Management (DTPM) framework či podpora Ryzenů 5000

Správce power managementu v Linuxu, Rafael Wysocki z Intelu, poslal aktualizace, které zahrnují jak standardní věci kolem ACPI, tak přináší nový framework Dynamic Thermal Power Management (DTPM), který nestihl v dostatečné kvalitě začleňovací okno pro jádro Linux 5.11 (Linus jej zamítl).

Dynamic Thermal Power Management je významnou aktualizací, která se v prvotní fázi zaměřuje na ARM zařízení. Pro vyhodnocování běhu zahrnuje spotřebu jednotlivých částí zařízení, aby lépe reagovala na odběry a s nimi související odpadní teplo vedoucí k přílišného ohřívání těla přístroje či zařízení. Jinými slovy: méně popálených rukou či nohou od přehřívajícího se (pří)stroje s Linuxem.

Kromě toho do jádra přibude podpora mobilní verze podzimní generace CPU Intel Alder Lake v rámci power-capping ovladače RAPL. Spravena jest detekce maximální frekvence CPU v ovladači pro Intel P-State, pro procesory od Qualcommu přibude ve verzi jádra 5.12 podpora Boostu v ovladači CPUFreq, nástroj cpupower zase dostane podporu procesorů rodiny AMD Zen 3 (aktuální Ryzeny 5000).

Ryzenů 5000 se také týká nově implementovaná podpora měření teploty – nestihla se do předchozí verze jádra kvůli náhodě, kdy byly nevhodně sladěny dny uvedení Ryzenů 5000 a Linuxu. Podpora je implementována v ovladači k10temp, patch víceméně jen přidává potřebná ID nových procesorů, jinak zde zásadní architektonický rozdíl v tomto subsystému CPU oproti Zenu 2 není. Za patchem o délce dvou řádků mimochodem nestojí AMD, ale nezávislý vývojář, funkčnost je ověřena na procesorech Ryzen 5800X, 5900X a 5950X.

Phoronix připomíná, že pro Ryzeny stále není k dispozici pořádné měření energie/spotřeby, protože ovladač AMD_Energy je omezen pouze na produkty řady EPYC a potřebný kód ze standardního ovladače byl s jádrem Linux 5.11 vyhozen pro nedostatečnou dokumentaci a následné věci.

KVM umožní uživateli emulovat Xen Hypercalls

S KVM půjde na Linuxu 5.12 v rámci userspacu emulovat Xen Hypercalls. A objeví se i některé AMD-specifické optimalizace. Vše vyplývá z počáteční várky patchů, které do Linuxu zaslal správce KVM Paolo Bonzini. Práce na tomto poli stojí na práci inženýrů z Oracle, kteří na tom pracovali už v roce 2019. Cílem je umožnit bootování Xen x86 HVM hostů na KVM, podobně jako to umí Hyper-V. Oracle se na tomto poli angažuje proto, že chce spouštět nezměněné Xen HVM obrazy na KVM, mít k dispozici lepší testování Xen hostů a paravirtualizovaných ovladačů atd. Na patchích této počáteční várky pracoval i David Woodhouse z Amazon AWS.

Jinak obecně se práce kolem KVM pro vydání Linux 5.12 točí i kolem vylepšování škálovatelnosti. Paolo doufá, že někdy kolem 5.12-rc3 by mohlo dojít k přechodu na nový MMU kód. Dále se pracuje na specifických vylepšeních pro AMD, konkrétně použití VMLOAD/VMSAVE v rámci ukládání a načítání stavu hostů (zrychlení v průměru o téměř 40 % na CPU cyklech), ošetření AMD errata kolem nepoužitelnosti nested virtualizace a podpoře příkazu AMD SEV či čištění kódu VMEXIT. Pět-dvanáctka také přinese další vylepšení v KVM pro procesory rodin POWER9 a POWER10 a řadu dalších novinek.

Spousta nového kódu v nouveau

Ovladač nouveau dostal přes 5 tisíc řádků nového kódu. Tvůrci jej připravují na podporu generace Ampere (GeForce RTX 3000 a odpovídající už-ne-Quadra) – lze předpokládat, že tady bude vývoj náročný a vleklý, generace Ampere přinesla významné změny v architektuře GPU či přímo výpočetních jednotek.

Heslovitě další věci

Pracuje se třeba také na podpoře Overdrive pro Radeony RX 6000 a AMDGPU FreeSync přes HDMI (a také první náznak podpory PCIe 5.0), ovladači pro ovladač Sony DualSense PlayStation 5, běhu na Nintendo 64, VRR/Adaptive-Sync pro Intel Tiger Lake/Xe/Gen12, řešení Intel iGPULeak u Gen7 (mimochodem na Linuxu 5.12 bude možné záplaty na GPU chyby vypnout), MSM pro Adreno GPU, rychlejším AES-NI XTS, reportování stavu baterie u zařízení Logitech, podpoře USB4 Security Level 5 (vypíná PCIe tunneling), deautorizace Thunderbolt zařízení atd.

Některé optimalizace pro AMDGPU FreeSync Video Mode do stihnou až do vydání Linux 5.13, ve verzi 5.12 naopak dále zrychlí IO_uring (zhruba o dalších 10 %). Něco novinek míří na podporu Lenovo IdeaPad. Do jádra 5.12 míří i další patch pro klasické diskety a podpora Software Audio Jack Injection pro snadnější debuggování zvuku či reportování napětí/teplot na některých deskách ASRock. Linux 5.12 také přinese další dílčí část prací na kernelovém virtuálním stroji eBPF pro běh sandboxovaných aplikací.

Toto vše jistě není konečný seznam, bude toho v nadcházejících týdnech až do ukončení začleňovacího okna pro Linux 5.12 ještě více. I toto budoucí vydání tedy bude poměrně výživné a rozhodně bude zejména s novějším hardwarem světa x86 stát za to.

Byl pro vás článek přínosný?

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í.