Kernel-Log – Was 2.6.36 bringt (1): Grafik
Zahlreiche Änderungen verbessern Performance und Funktionsumfang der Treiber für Intels aktuelle Mobilgrafik. Nouveau unterstützt nun auch die Fermi-Chips neuerer GeForce-Grafikkarten; der Radeon-Treiber beherrscht mit 2.6.36 Underscan, HyperZ und Tiling. Erweiterungen für den Debugger KDB und den Intel-KMS-Treiber ermöglichen neuen Debugging-Funktionen.
- Thorsten Leemhuis
Nach der Veröffentlichung der dritten Vorabversion von Linux 2.6.36 Ende August gab es für acht Tage keine Änderungen im Hauptentwicklungszweig von Linux, weil Linus Torvalds die Linuxcon Brazil 2010 besuchte. Am Dienstag Abend hat Torvalds die Entwicklung von 2.6.36 wieder aufgenommen; die vierte Vorabversion dürfte er vermutlich zu Beginn der nächsten Woche freigegeben, wenn er seinen üblichen Arbeitsmustern folgt.
Der jetzige Entwicklungsstand von 2.6.36 ähnelt der finalen Version bereits stark, denn die Kernel-Hacker haben wie üblich am Anfang des Entwicklungszyklus alle größeren Neuerungen im Rahmen des Merge Window in den Hauptentwicklungszweig integriert. In der jetzigen Stabilisierungsphase fließen vorwiegend Fehlerkorrekturen, aber keine größeren Änderungen mehr ein, denn die könnten ja neue Fehler mit sich bringen. Torvalds hat darauf bei 2.6.35 stärker gepocht als zuvor; er hält es bei 2.6.36 ähnlich, da sich der Ansatz bewährt habe.
Da die wesentlichen Neuerungen von Linux 2.6.36 feststehen, kann das Kernel-Log schon jetzt einen umfassenden Überblick über die größten Neuerungen der Ende Oktober erwarteten nächsten Kernel-Version geben. Wie üblich werden wir die Informationen über eine mehrere Artikel verteilen, die sich nach und nach den verschiedenen Funktionsbereichen des Kernels widmet. Den Anfang der Serie "Was 2.6.36 bringt" machen die Änderungen rund um die Unterstützung für Grafikhardware; in den kommenden Wochen folgen Artikel zur Netzwerkunterstützung, zu Storage-Hardware, Dateisystemen, Architektur-Code, Treiber und einigen weiteren Funktionsbereichen.
Intel
Nachdem der Intelligent Power Sharing (IPS) Driver die Aufnahme in den Kernel 2.6.35 noch verpasst hatte, nahmen die Kernel-Hacker diesen im "Platform"-Subsystem angesiedelten Treiber nun für 2.6.36 auf. Mit seiner Hilfe kann der Grafikchip in einigen Mobilprozessoren aus Intels Westmere-Generation (etwa dem Core i5) auf eine höhere Taktfrequenz hochschalten, wenn der Baustein seinen spezifizierten Maximal-Wärmeumsatz ("Thermal Budget") noch nicht ausschöpft – Intel nennt diese Technik, die die 3D-Performance steigert und wohl auch in Desktop-Prozessoren auftauchen dürfte, "HD Graphics Dynamic Frequency Technology" und beschreibt sie in einem Whitepaper.
Der Intel-KMS-Treiber für die Grafikkerne der Mobile-Prozessoren aus den Core-i-Reihen kann nun den Frame Buffer komprimieren, was die Leistungsaufnahme bei einem nicht näher spezifizierten HP-Notebook laut Commit-Kommentar um 0,2 Watt senkt. Verbessert haben die Entwickler zudem die Unterstützung für den Embedded DisplayPort (eDP).
[pagebreak AMD, Nvidia und KMS-Debugging]
Nvidia
Den Nouveau-KMS-Treiber haben die Entwickler kurzfristig um Unterstützung für Grafikchips der Fermi-Generation erweitert, nachdem einer der Hauptentwickler des Treiber so eine Karte erhalten hatte (u. a. 1, 2, 3, 4, 5, 6, 7). Fermi-GPUs sitzen auf den im März vorgestellten GeForce-GTX-Modellen 470 und 480 und einigen weiteren, zwischenzeitlich eingeführten Modellen der 400er-Serie. Verbessert haben wollen die Kernel-Entwickler auch die Suspend- und Resume-Unterstützung für die Karten der GeForce-Familien bis einschließlich der 7000er-Serie sowie die Unterstützung für DisplayPort und Hotplug bei den GeForce-Serien 8000, 9000, 100, 200 und 300.
AMD
Der KMS-Treiber für Radeon-Karten beherrscht nun Underscan, um die Bildgröße besser auf digital angesteuerte Bildschirme anpassen zu können, die automatisch Overscan aktivieren. Der Treiber bietet jetzt auch Funktionen zum Auslesen der in neueren Radeon-GPUs integrierten Temperatursensoren, unterstützt bei Notebooks die Funktionstasten zum Aktivieren von externen Monitoranschlüssen besser und beherrscht die Audio-Ausgabe via HDMI bei den Mainboard-Chipsätzen RS600, RS690 und RS740.
Bei R300- und R500-Grafikchips bieten die Treiber nun alles nötige zur Nutzung der HyperZ genannten Beschleunigungsfunktionen rund um die Handhabung von Tiefeninformationen. Die Tiling-Untersütztung für die Grafikchips der R600, R700 und R800-Serien (2000er-Serie und später) soll die 2D- und 3D-Performance der Treiber steigen (u. a. 1, 2, 3)
Optimiertes Locking und neue Debugging-Möglichkeiten
DRM-Subsystem-Maintainer Dave Airlie erwähnt in seine Haupt-Git-Pull-Request noch einige weitere Neuerungen – das Big Kernel Lock (BKL) etwa wird ab 2.6.36 nur noch vom Treiber-Code für einige veraltete Intel-Grafikchips der 800er-Familie genutzt, was Skalierbarkeit und Performance des Codes verbessern sollte.
Über KDB-Entwickler Jason Wessel stieß ferner Unterstützung für die Debugger KGDB und den erst bei 2.6.35 integrierten KDB (Kernel Debugger) zum DRM-Code und dem Intel-KMS-Treiber. Zusammen mit Änderungen am KGDB/KDB-Code ermöglicht das mit dem Intel-Treiber den Wechsel auf eine Debugger-Shell, um dort etwa die Ursache für einen Absturz des X-Servers analysieren zu können, wenn der Wechsel auf eine Textkonsole nicht mehr möglich ist und keine serielle Konsole konfiguriert ist. Ein etwas älteres YouTube-Video demonstriert die Technik.
[pagebreak Die kleine Perlen]
Die kleinen Perlen
Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.
Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Hilfetexte und Konfigurationsoptionen enthalten, die bei der Kernel-Konfiguration über "make menuconfig", "make xconfig" und ähnliche Werkzeuge angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" steht für Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.
- [
] agp/intel: Add actual definitions of the Sandybridge PTE caching bits. - [
] agp/intel: Support the extended physical addressing bits on Sandybridge. - [
] drm: add "auto" dithering method - [
C] drm: add PCI requirements to low-level drivers. - [
] drm: add per-event vblank event trace points - [
C N2] drm: Add support for platform devices to register as DRM devices - [
N] drm: add vblank event trace point - [
5] drm: block userspace under allocating buffer and having drivers overwrite it (v2) - [
2] drm/edid: Rewrite mode parse to use the generic detailed block walk - [
] drm/i915: Add fixed panel mode parsed from EDID for eDP without fixed mode in VBT - [
] drm/i915: Add the support of eDP on DP-D for Ibex/CPT - [
] drm/i915: add tracepoints for flip requests & completions - [
N1] drm/i915: Enable aspect/centering panel fitting for Ironlake. - [
] drm/i915: Enable RC6 on Ironlake. - [
1] drm/i915: Implement fair lru eviction across both rings. (v2) - [
] drm/i915: Initialize LVDS and eDP outputs before anything else - [
] drm/i915,intel_agp: Add support for Sandybridge D0 - [
3] drm/i915/sdvo: Add missing TV filters - [
1] drm/i915: wait for actual vblank, not just 20ms - [
C N1] drm: Import driver for the sil164 I2C TMDS transmitter. - [
] drm/kms: add crtc disable function - [
1] drm: move ttm global code to core drm - [
] drm/nouveau: Add another Zotac FX5200 TV-out quirk. - [
] drm/nouveau: Add some generic I2C gadget detection code. - [
] drm/nouveau: Add TV-out quirk for an MSI nForce2 IGP. - [
1] drm/nouveau: introduce gpio engine - [
1] drm/nouveau: remove ability to use external firmware - [
] drm/nouveau: support fetching LVDS EDID from ACPI - [
1] drm/nv04-nv3x: Implement init-compute-mem. - [
1] drm/nv17-nv4x: Attempt to init some external TMDS transmitters. - [
] drm/nv50: DCB quirk for Dell M6300 - [
] drm/nv50: set DP display power state during DPMS - [
] drm/radeon: add new pci ids - [
] drm/radeon/kms: add additional quirk for Acer rv620 laptop - [
1] drm/radeon/kms: add support for router objects - [
] drm/radeon/kms/atom: add crtc disable function - [
] drm/radeon/kms: don't enable MSIs on AGP boards - [
] drm/radeon/kms: fix sideport detection on newer rs880 boards - [
] drm/radeon/kms: mark 3D power states as performance - [
] gpu/drm/i915: Add a blacklist to omit modeset on LID open - [
] imxfb: add pwmr controlled backlight support - [
] IPS driver: add GPU busy and turbo checking - [
] s3c-fb: add default window feature. - [
] s3c-fb: add support for display panning - [
] s3c-fb: add wait for VSYNC ioctl - [
3] viafb: PLL value cleanup
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl). (thl)