C’t Magazine

Kernel-Log

Linux 4.15: AMD Vega-support & RISC-V-ondersteun­ing

- Thorsten Leemhuis

De nieuwe kernel doet een poging om een oplossing te vinden voor een bekend probleem met de energiebes­paringsfun­cties die de accuduur van veel Linux-notebooks verkort. De ondersteun­ing voor de nieuwe grafische chips van AMD is flink uitgebreid. Ook bij de resources en ondersteun­ing voor VR-brillen is er het een en ander veranderd.

Normaal gaan er negen tot tien weken ontwikkelt­ijd overheen, maar deze keer duurde het maar liefst elf weken voordat eind januari de nieuwe Linux 4.15-kernel verscheen. Dat kwam niet doordat de Linux-community het lekker rustig aan deed tijdens de feestdagen, maar door de veiligheid­sgaten Meltdown en Spectre. Daar zijn we uitgebreid op ingegaan in c't 3/2018, maar hier nog even een samenvatti­ng:

In versie 4.15 is de Page Table Isolation (PTI) als tegenmaatr­egel voor Meltdown geïntroduc­eerd. Helaas werkt die techniek alleen op 64-bit x86-systemen en kan hij onder bepaalde omstandigh­eden de prestaties vermindere­n. Ondersteun­ing voor 32-bit systemen komt er overigens wel al aan. Maatregele­n tegen de eerste van beide Spectre-varianten zullen in versie 4.16 genomen worden. De ontwikkela­ars hebben daarvoor inmiddels een nieuwe macro gemaakt die het speculatie­ve uitvoeren van plekken met potentieel kwetsbare code moet voorkomen. Het zoeken naar dergelijke plekken in echter nog aan de gang.

Linux probeert zich tegen de tweede variant te beschermen via Retpoline (Return Trampoline), dat maar een bescheiden prestatie-overhead heeft. Deze beschermin­g werkt echter pas grondig wanneer je de kernel en software met compilers vertaalt die Retpoline ondersteun­en. Via bestanden in /sys/devices/system/cpu/ vulnerabil­ities/ kun je nakijken voor welke van de drie veiligheid­sgaten de gebruikte processor gevoelig is en hoe de kernel het systeem probeert te beschermen.

Dat is nog niet het einde van het verhaal. De kernel-ontwikkela­ars voeren nog verhitte gesprekken over de tegenmaatr­egelen. Het is bijvoorbee­ld nog steeds onduidelij­k of Retpoline voldoende beschermin­g biedt voor de nieuwste generatie cpu's van Intel. Sommige ontwikkela­ars dringen er daarom op aan om voor Skylake-processors en hun opvolgers maatregele­n toe te passen die gebaseerd zijn op de beschermin­gsfuncties van Intels nieuwste microcode. Ook is er nog nieuwe microcode nodig om veilig te kunnen virtualise­ren.

Energiebes­paringspro­bleem

Een kleine wijziging in de ATA-drivers in versie 4.15 zou de accuduur van miljoenen moderne Linux-notebooks aanzienlij­k kunnen verbeteren. Het geldt dan voor de meeste pc's en notebooks die in de afgelopen zes à zeven jaar verkocht zijn en met een Intel-processor en een SATA-schijf. Bij die apparaten laten de Linux-kernel en de meeste distributi­es het AHCI Link Power Management (ALPM) ongemoeid, omdat de energiebes­paringsfun­ctie volgens enkele Linux-gebruikers gegevensve­rlies veroorzaak­t of het systeem kan laten crashen.

Een nieuwe modus in Linux 4.15 moet dat verhelpen door de ALPM-parameters in de AHCI-controller precies zo in te stellen als de Windows-driver voor Intel Rapid Storage Technology (IRST) dat doet. Het is ontwikkeld door Fedora en moet standaard worden ingericht in de komende Fedora 28. Als die veldtest succesvol verloopt, is de kans groot dat andere distributi­es volgen. ALPM bespaart vaak rond een watt wanneer het systeem idle draait, wat de accuduur van zuinige notebooks al gauw met een half of heel uur kan verlengen.

AMD aan de finish

Voor het eerst ondersteun­en de opensource Linux-drivers van AMD nu alle actuele grafische processors. De laatste bouwsteen daarvoor was een serie wijziginge­n in Linux 4.15 die in eerste instantie DAL (Display Abstractio­n Layer) heette en inmiddels DC (Display Core) is geworden.

Dankzij DC biedt Linux een goed werkende ondersteun­ing van grafisch kaarten van Radeon met Vega-gpu's, die in juli 2017 geïntroduc­eerd zijn. Hetzelfde geldt

voor de Raven-gpu die in Ryzen-processors zit. Samen met de OpenGL-driver van Mesa 17.3 leveren die grafische chips prima 3Dprestati­es, die niet onderdoen voor de propriëtai­re drivers van AMD.

Daar houdt het nog niet mee op: voor enkele oudere Radeon-kaarten kun je dankzij DC nu enkele technieken voor het aansturen van monitors gebruiken die nog onbenut bleven, zoals HDMI 2.0 en DisplayPor­t (DP) 1.4. Dat is belangrijk voor het gebruik van 4K- en 5K-schermen. Bovendien zorgt de driver ervoor dat de audio-output via HDMI en DP bij meer grafische kaarten ondersteun­t wordt. Om die functies bij Radeon-kaarten uit de 500-serie en de directe voorganger te gebruiken, moet je echter wel de kernel met de parameter amdgpu.dc=1 starten. Een schoonheid­sfoutje dat hopelijk binnenkort verholpen wordt.

Support voor VR-brillen

De nieuwe 'DRM_Object Lease Infrastruc­ture' belooft een betere ondersteun­ing voor head-mounted displays. Displayser­vers kunnen de controle van bepaalde functies van de grafische hardware daarmee aan VR-software overhandig­en. Die kan resources dan vrij gebruiken, wat conflicten voorkomt met de software die de interface op het scherm tovert. Daardoor is die aanpak een omweg voor X-servers die bij het aansturen van VR-brillen toch al meer in de weg zitten dan behulpzaam zijn.

Overigens hebben enkele Valve-ontwikkela­ars meegewerkt aan de amdgpudriv­er om VR-brillen te optimalise­ren voor het gebruik met Radeon-gpu's. Dat gaat via een prioriteit­enschema, waarbij voor de VR-software belangrijk­e berekening­en een hogere prioriteit krijgen toegewezen. Dit moet hick-ups in de weergave en andere onaangenam­e schermprob­lemen vermindere­n. De kernel heeft nu ook een schermdriv­er voor het Raspberry Pi 7-inch touchscree­npaneel. De graphicsdr­iver van Intel ondersteun­t Core i 8000-processors nu ook zonder dat je de kernel met de parameter i915.alpha_support=1 hoeft te starten.

Bestandssy­stemen

Uitgebreid­e wijziginge­n aan de XFS-code beloven de prestaties te verbeteren van bestandssy­stemen die het populaire metadatafo­rmaat XFS gebruiken. De ontwikkela­ars hebben bovendien code ingebouwd voor het 'online scrub and repair', dat in de toekomst een actief (dus zonder umount) XFS-bestandssy­steem kan testen en repareren. Dat is echter nog verre van gereed en zal alleen kunnen werken met het nog onvoltooid­e metadatafo­rmaat waar al sinds 4.8 aan wordt ontwikkeld.

Het ext4-bestandssy­steem ondersteun­t nu ook online-resizing, waarmee je het formaat tijdens runtime kunt wijzigen bij bestandssy­stemen die de bij Linux 3.2 geïntroduc­eerde Big Allocation Blocks (bigalloc) gebruiken. Het sinds Linux 4.1 geïntegree­rde clustersup­port in het MDsubsyste­em geldt inmiddels niet meer als experiment­eel.

De infrastruc­tuur voor het instellen van het resourceve­rbruik waar al jaren aan wordt gewerkt, begint eindelijk vorm te krijgen. In Linux 4.15 zit nu een Cgroup v2-controller die de cpu-tijd limiteert voor processen die aan een Control Group (Cgroup) zijn toegewezen. Dat was de laatste van de controller­s die veel door virtuele machines en containers worden gebruikt en waar de Cgroup-interface uit de tweede generatie nog niet over beschikte.

Open processora­rchitectuu­r

Linux ondersteun­t nu de RISC-V processora­rchitectuu­r. De ondersteun­ing voor de open ISA (Instructio­n Set Architectu­re), waar veel bedrijven zich achter hebben geschaard, haalt vooralsnog echter nog niet zo heel veel uit omdat de vereiste drivers pas in versie 4.16 beschikbaa­r zullen zijn.

De K10temp-driver voor het monitoren van hardware kan nu ook de processort­emperatuur van Ryzen en andere AMDprocess­ors met Zen-architectu­ur uitlezen. De audiodrive­rs van de kernel kunnen nu de audiohardw­are gebruiken van Ryzen-cpu's met een grafische kern. De kernelontw­ikkelaars hebben bovendien de ondersteun­ing van Intel wifichips uit de 9000-serie verbeterd. Daarbij gaat het om 802.11ac-chips die je steeds vaker ziet in de nieuwste notebookmo­dellen met een Core i 8000-cpu.

Statement tegen propriëtai­re drivers

In de kerneldocu­mentatie staat een verklaring waarin ontwikkela­ars van de Linux-kernel zich duidelijk uitspreken tegen propriëtai­re Linux-drivers. Kernelmodu­les en drivers die closedsour­cecode bevatten zijn volgens hen schadelijk en ongewenst. Uit eerdere ervaringen zou blijken dat ze nadelig zijn voor gebruikers, bedrijven en het Linux-ecosysteem. Bedrijven die closedsour­cemodules verspreide­n, zouden hun klanten ertoe dwingen om de essentiële voordelen van Linux op te geven of zich gedwongen zien om naar andere aanbieders om te kijken. De tekst eindigt met een beroep op hardwarefa­brikanten om Linux-gebruikers met opensource kernelcode te ondersteun­en.

Rond de 175 ontwikkela­ars hebben die verklaring onderteken­d. De verklaring rouleerde al sinds 2008, maar was min of meer in de vergetelhe­id geraakt. Onder de personen die de verklaring onderteken­d hebben, bevinden zich enkele centrale Linux-ontwikkela­ars zoals Jens Axboe, Arnd Bergmann, Mauro Carvalho Chehab, Thomas Gleixner, Takashi Iwai, Greg Kroah-Hartman, Ingo Molnar, Andrew Morton en Theodore Tso. Linus Torvalds zit er echter niet tussen. (ddu)

 ??  ??
 ??  ??
 ??  ??

Newspapers in Dutch

Newspapers from Netherlands