Kernel-Log – Was 2.6.31 bringt (4): Tracing, Architektur-Code, Virtualisierung

Mit den Performance Counters lässt sich das Laufzeitverhalten von Code näher analysieren. Die noch junge Tracing-Infrastruktur haben die Entwickler abermals überarbeitet. Auch beim Architektur-Code und den Virtualiserungslösungen gibt es einiges Neue.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 14 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Am Wochenende hat Linus Torvalds die siebte Vorabversion von Linux 2.6.31 freigegeben. Er hebt in der Freigabe-Mail einige der Korrekturen hervor; die Liste mit bekannten neuen Fehlern verzeichnet zwei Tage zuvor 29 ungelöste Probleme.

Zum Freigabezeitpunkt von 2.6.31 macht Torvalds anders als eine Woche zuvor keine Angaben – ein zwei Wochen dürfte es vermutlich noch dauern. Das Kernel-Log nimmt das zum Anlass, die Berichterstattung über die größten Neuerungen von 2.6.31 mit einem Überblick aus den Bereichen Tracing, Architektur-Code, Speicherverwaltung und Virtualisierung fortzusetzen.

Über die teilweise im Kernel und teilweise im Userspace arbeitenden "Performance Counters" kann der Kernel in Zukunft die gleichnamigen Einheiten moderner Prozessoren auslesen. Sie messen verschiedene für die CPU-Performance wichtige Vorgänge im Prozessor – die Messwerte ermöglicht so eine genaue Analyse des Codeablaufs, um die für die Ausführungsgeschwindigkeit wichtigen Abschnitte später bis ins letzte auf die CPU optimieren zu können.

Nicht verwechseln sollte man die gelegentlich "perf_counter" abgekürzten Performance Counters mit Perfmon ("hardware-based performance monitoring interface for Linux"), das seit Jahren ähnliche Funktionen bietet – die Kernel-Hacker haben es nicht in die Linux-Quellen aufgenommen, weil sie mit einigen der Eigenschaften von Perfmon unzufrieden waren. Das dürfte einer der Gründe gewesen sein, warum Ingo Molnar und einige andere Entwickler die mit einer etwas anderen Herangehensweise arbeitenden Performance Counters aus der Taufe hoben. Der Hauptentwickler von Perfmon kritisierte verschiedene Eigenschaften der Performance Counters bei deren Vorstellung Ende 2008 sowie den darauf folgenden Monaten mehrfach; nach Beginn der auf über 600 Patches verteilten Aufnahme in die Kernel-Quellen äußerte er abermals einige Kritik, die ausführlichst diskutiert wurde. Einige Details zu dieser Konkurrenzsituation liefert der aus Ende 2008 stammende LWN.net-Artikel "Dueling performance monitors".

Mehr Infos

Kernel-Log – Was 2.6.31 bringt

Weitere Teile aus der Kernel-Log-Mini-Serie "Was 2.6.31 bringt", die die wichtigsten Neuerungen der kommenden Kernel-Version zusammenfasst:

1. Netzwerk – Neue Treiber für LAN und WLAN

2. Audio & Video – KMS für Radeon und Treiber für X-Fi

3. Storage & Dateisysteme – Btrfs aufgebohrt, IDE-Subsystem auf dem Abstellgleis

Der Artikel "Feintuning – Die Neuerungen von Linux 2.6.30" bietet eine Übersicht über die Neuerungen der derzeit aktuellen Kernel-Version. Weitere Geschehnisse rund um den Linux-Kernel und andere Hardware-nahe Linux-Software finden Sie in den regulären Kernel-Logs.

Wie sich die Performance Counters nutzen lassen, beschreibt der neuere LWN.net-Artikel "Perfcounters added to the mainline". Weitere hintergründe finden sich auch in der Dokumentation. Die zu den Performance Counters gehörenden Userspace-Tools haben die Kernel-Entwickler nach einer längeren Debatte und einem Machtwort von Linus Torvalds in das neu eingerichtete Unterverzeichnis tools/ direkt in die Kernel-Quellen aufgenommen.

Über Ingo Molnar fanden nicht nur die Performance Counters, sondern auch zahlreiche Änderungen für den von ihm betreuten Tracing-Bereich den Weg in den Kernel. Im Git-Pull-Request deutet er an, dass die Hauptentwicklungsphase der Tracepoints bald beendet sein dürfte. Er hebt zudem verbesserte Filter, interne Umbauarbeiten und optimierte Performance hervor. Einige der Möglichkeiten, die die Tracing-Infrastruktur aktueller Kernel-Versionen bietet, erklärt Sony-Entwickler Tim Bird in seinem Vortrag " Measuring Function Duration with Ftrace", den wir bereits im Artikel "Tiefschürfend – Die Proceedings des Linux Symposiums 2009" erwähnt haben.

Aufgenommen haben die Kernel-Hacker auch Unterstützung für Profiling mit dem GCC Coverage Testing Tool (gcov). Um Speicherlecks aufzuspüren, können Kernel-Entwickler und -Tester in Zukunft auf die Hilfe von Kmemleak (Dokumentation) zurückgreifen – das Tool fehlinterpretiert jedoch einige Situationen und Konstrukte, daher sollte man die Ausgaben nicht blind trauen. Das ebenfalls neue Kmemcheck (Dokumentation) erkennt die Nutzung nicht-initialisierter Speicherbereiche.