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

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.

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.

Bei den bisher genannten Neuerungen handelt es sich nur um die bedeutsamsten Änderungen, die die Kernel-Hacker bei Architektur und Infrastruktur von Linux vorgenommen haben. Einige weitere im Kurzüberblick:

Architektur-Code:

  • Auf x86-64-CPUs adressiert Linux ab 2.6.31 2^46 statt 2^44 Byte Arbeitsspeicher – davon hat derzeit aber kaum jemand was, denn noch sind Systeme mit 16 bis 64 TByte RAM überaus exotisch.
  • Dass Hibernation (Suspend-to-Disk/Software-Suspend/swsups) und Stromsparen nicht nur für Notebooks, sondern auch bei Großrechnern interessant ist, zeigen einige in den Hauptentwicklungszweig aufgenommene Patches von Hans-Joachim Picht, die Hibernate-Unterstützung für IBMs S390-Architektur (jetzt System z) nachrüsten. Von Michael Holzheu eingebrachte Änderungen verbessern parallel die Nutzung für einige Stromspartechniken von S390-Systemen.

Speicherverwaltung:

  • Durch einige von Mel Gorman eingesandte Patches soll der für die Speicherbereitstellung zuständige Page Allocator ein wenig flotter arbeiten – einige Benchmark-Ergebnisse finden sich im Commit-Kommentar.

Virtualisierung:

  • Die KVM-Entwickler überarbeiteten den Interrupt-Code und wollen die SMP-Performance verbessert haben.
  • Der Xen-Code im Kernel gibt jetzt einige Informationen über das Verzeichnis /sys/hypervisor preis. Neu zum Kernel gestoßen ist der Xen-Treiber evtchn zum Senden oder Empfangen von Ereignissen auf "Event channels". Die Aufnahme der Dom0-Unterstützung scheint hingegen wieder in weite Ferne gerückt – seit den Diskussionen kurz vor und nach der Freigabe von Linux 2.6.30 gab es auf der LKML keine weiteren Debatten zum Thema.

Die englischen Überschriften von zahlreichen weiteren nicht ganz so wichtigen, aber keineswegs unbedeutenden Änderungen finden sich in der folgenden Liste. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf den jeweiligen Commit im Webfrontend des Hauptentwicklungszweigs von Linux. Dort liefern normalerweise der Commit-Kommentar und der Patch selbst zahlreiche weitere Informationen zur jeweiligen Änderungen.

Architecture Support

ARM:

Power:

x86

Various:

MM

Tracing

Virtualization

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in vorangegangen Ausgaben des Kernel-Logs auf heise open. (thl/c't) (thl)