Kernel-Log – Was 2.6.35 bringt (1): Grafik

Trends & News | Kernel-Log

Stromsparfunktionen für Radeon-Grafikchips, Grundlagen für die 3D-Untersützung mit Evergreen-GPUs, H264-Decodierfunktionen im Intel-Ironlake-Treiber und Unterstützung für Intels nächste Generation von Desktop- und Notebook-Chipsätzen sind einige der wichtigsten Neuerungen der Grafiktreiber von Linux 2.6.35.

Durch einem zweiwöchigen Urlaub von Linus Torvalds gab es Mitte Juni keinerlei Änderungen im Hauptentwicklungszweig von Linux. Seit Ende vergangenen Monats integriert Torvalds aber wieder Patches und hat am Sonntag die vierte Vorabversion von Linux 2.6.35 veröffentlicht. In der Freigabemail zur 2.6.35-rc4 genannten Version deutet er an, dass es ziemlich gut funktioniert habe, in dieser Phase des Entwicklungszyklus strikter als sonst darauf zu achten, nur mehr Fehlerkorrekturen zu integrieren.

Der Entwicklungsstand des RC4 von Linux 2.6.35 sollte daher mit noch mehr Gewissheit als bei früheren Versionen mit der finalen Version übereinstimmen, sofern nicht ein so schwerer Fehler gefunden wird, der die Kernel-Entwickler eine der größeren Änderung wieder entfernen oder vorübergehend deaktivieren lässt. Da das aber nur sehr selten vorkommt, kann das Kernel-Log bereits jetzt einen umfassenden Überblick über die größten Neuerungen der im August erwarteten Kernel-Version geben.

Zur besseren Verträglichkeit wird das wie üblich in einer mehrteiligen Artikel-Serie erfolgen, die sich nach und nach den verschiedenen Funktionsbereichen des Kernels widmet. Den Anfang der "Was 2.6.35 bringt" genannten Mini-Serie macht die folgende Beschreibung der Änderung rund um die Unterstützung für Grafikhardware; in den kommenden Wochen folgen Artikel zu den Neuerungen rund um Netzwerkunterstützung, Storage-Hardware, Dateisystemen, Architektur-Code, Treiber und einigen weiteren Funktionsbereichen.

Die bei Linux 2.6.34 eingebrachte, aber dort noch rudimentäre Unterstützung für die Stromsparfunktionen von Radeon-Grafikchips haben die Kernel-Hacker bei 2.6.35 erheblich ausgebaut und optimiert. Wie aggressiv der Treiber Strom zu sparen versucht, lässt sich über /sys/class/drm/card0/device/power_method beeinflussen. Ein "echo dynpm" in diese Datei aktiviert etwa das vollautomatische dynamische Power-Management. Alternativ kann man "profile" in die Datei schreiben und via /sys/class/drm/card0/device/power_profile
eines von vier Profilen festlegen: "default" sorgt für Standard-Takte bei GPU und Speicher, "low" aktiviert einen stromsparenden Modus, "high" eine performante Einstellung und "auto" schaltet abhängig von der Stromversorgung automatisch zwischen "low" und "high" um. Weitere Details zu den Verbesserungen und Einstellmöglichkeiten liefert der Commit-Kommentar. In seinem Git-Pull-Request erläutert DRM-Maintainer Dave Airlie allerdings, dass die Unterstützung für die zur Laufzeit nutzbaren Stromsparfunktionen noch nicht ausgereift sei, aber nun in den Kernel integriert wurde, um Feedback zu erhalten; der dynamische Stromsparmodus "dynpm" könne zudem zu Bildstörungen führen.

Aufgenommen haben die Kernel-Entwickler auch einen rudimentären Command Stream Parser für die Evergreen-Grafikchips der Radeon-5000-Serie. Er ist eine der Voraussetzungen für 3D-Unterstützung; Mesa-Code, der auf dem neuen CS-Parser aufbaut, soll laut dem Kommentar zur Änderung bald erscheinen. Auch IRQ-Unterstützung für Evergreen-GPUs stieß zum Kernel und sollte Techniken wie Monitor-Wechsel-Erkennung ohne Polling und langfristig auch Page-Flipp-Support ermöglichen.

Aufgenommen haben die Kernel-Hacker rund um Torvalds auch einige Änderungen am Treiber für die in vielen Mainboard- und Notebook-Chipsätze von Intel integrierten Grafikkerne. Durch diese bringt der Treiber nun alles Grundlagen (u. a. den Bit Stream Decoder Ring Buffer) zur Nutzung der H264-Decodierfunktionen mit, die die mit Grafikkern ausgestatteten Ironlake-CPUs bieten. Um diese nutzen zu können wird auch neue Userland-Software wie die libva sowie eine diese Library verwendende Player-Software benötigt; weitere Details und Download-Links für die benötigte Software finden sich auf einer von Intel betreuten Webseite.

Der Treiber bietet nun auch Unterstützung für die Cougarpoint genannten PCHs, die Intel Gerüchten zufolge Anfang nächsten Jahres zusammen mit den Sandy-Bridge-Prozessoren einzuführen gedenkt. Neu ist auch der Multifunction SDVO Device Support sowie die Unterstützung für Memory Self-Refresh bei Ironlake-Prozessoren – laut Tests des Entwicklers hat Letztere die Leistungsaufnahme auf einem Test-Notebook um ein Watt reduziert.

Zum Kernel stieß ferner die von Intel-Mitarbeiter Jesse Barnes eingebrachte und auf Entwickler ausgerichtete Dokumentation, die verschiedenen Interna des DRM-Subsystems erläutert, um Neulingen die Programmierung von DRM-Treibern zu erleichtern. Der Kernel soll nun auch besser damit zurecht kommen, wenn kein Monitor angeschlossen ist. Einige weitere Neuerungen listen die Git-Pull-Requests von DRM-Maintainer Dave Airlie und Eric Anholt, der den Intel-Treiber betreut. Kaum erwähnenswerte Neuerungen gab es diesmal beim noch jungen Nouveau-Treiber für Nvidia-Grafikchips.

Zur Aufnahme bei 2.6.35 eingereicht war auch ein Treiber für Intels Intelligent Power Sharing (IPS). Durch diese in einigen Mobile-CPUs der Ironlake-Reihe – etwa dem Core i5 – eingebaute Technik kann der Grafikkern von auf einen höheren Kerntakt umschalten und so mehr Grafikleistung liefern, wenn die x86-Rechenkerne der CPU nur teilweise belastet sind und der Prozessor seine maximal spezifizierten Wärmeumsatz ("Thermal Budget") noch nicht ausnutzt. Die Einreichung erfolgte aber erst nach dem RC2 und wurde von Torvalds abgelehnt – nicht die einzige Zurückweisung in diesem Entwicklungszyklus, denn Torvalds war wie bereits anfangs angedeutet diesmal deutlich penibler als in der Vergangenheit und wird diesen Ansatz wohl auch in Zukunft beibehalten.

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

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

Kommentare

Anzeige