Menü

Kernel-Log: Was 2.6.28 bringt (7) - Architektur-Unterstützung, Speichersubsystem und Virtualisierung

vorlesen Drucken Kommentare lesen

Nicht nur bei den Audio-Treibern, sondern auch beim Code für die verschiedenen von Linux unterstützten Architekturen, den Virtualisierungstechnken und der Speicherverwaltung fanden noch einige wichtige Änderungen in der zweiten Hälfte des Entwicklungsphase von 2.6.28 statt – einer der Gründe, warum das Kernel Log erst in der jetzigen Endphase der 2.6.28-Entwicklung über diese Neuerungen der nächsten Linux-Version berichtet.

Nach jahrelanger Entwicklung nahmen die Kernel-Entwickler zahlreiche maßgeblich von Rik van Riel unter der Bezeichnung "VM pageout scalability improvements" vorangetriebene Änderungen auf, die Teile des Speichersubsystems renovieren und optimieren (u. a. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12). Das soll denVerwaltungs-Overhead bei speicherlastigen Anwendungen sowie Systemen mit viel Arbeitsspeicher reduzieren; Details und Hintergründe zu den Änderungen finden sich in einem LWN.net-Artikel. Ferner sollen einige von Nick Piggin eingebrachte Änderungen speziell die CPU-Belastung durch die Speicherverwaltung mindern (u.A. 1, 2, 3, 4, 5, 6) – auch hierzu liefert LWN.net Hintergrundinformationen.

Nachdem bereits bei Linux 2.6.27 die Include-Dateien für ARM, IA64, Power oder Sparc von include/xyz nach arch/xyz/include wanderten, folgen nun die Dateien für einige weitere Architekturen – darunter MIPS und x86. Die Kernel-Entwickler überholten ferner die APIC-Unterstützung für x86-System an verschiedenen Stellen und erweiterten sie dabei gleich um Unterstützung für x2apic (u. a. 1, 2, 3, 4). Neu dabei ist auch die Unterstützung für die von neueren Intel-Prozessoren verstandenen Befehle XSAVE und XRSTOR, die den Zustand von x87- und SSE-Registern beim Context-Switch sichern oder wiederherstellen. Der Microcode Loader, über den sich bislang nur der Microcode von Intel-CPUs aktualisieren ließ, unterstützt nach einem maßgeblich von AMD-Entwicklern vorangetriebenen Redesign nun auch neuere AMD-Prozessoren (u. a. 1, 2, 3). Zum Performance- oder Code-Debugging gab es ferner einige grundlegende Neuerungen – darunter die Kernel Tracepoints (Dokumentation, Beispiele) und der Unified Trace Buffer. Entfernt haben die Kernel-Entwickler irqbalance – bei den meisten Distributionen kümmert sich bereits seit Jahren der gleichnamige Userspace-Daemon um diese Aufgabe.

Wie schon bei Linux 2.6.27 haben die Entwickler erneut zahlreiche Aufrufe des im Multiprozessor-Betrieb für die Sicherung kritischer Codebereiche genutzten Big Kernel Lock (BKL) eliminiert oder von den Treiber-Subsystemen in die Treiber selbst verlagert. Weiter vorangetrieben haben die Kernel-Hacker zudem die mit Linux 2.6.24 begonnene Zusammenlegung der Verzeichnisse und Quellcodedateien zur Unterstützung von x86-32- und x86-64-Systemen. Bei diesem fortwährenden Prozess traf es diesmal unter anderem zahlreiche Code-Bereiche rund um das IRQ-Management; dadurch sollte sich das Verhalten von 32- und 64-Bit-x86-Kernel weiter annähern, die bei der IRQ-Konfiguration bislang teilweise unterschiedlich vorgehen.

Auch für Virtualisierungslösungen bringt 2.6.28 wieder einiges Neues. Mit der Virtualisierungslösung KVM lassen sich nun etwa mit Hilfe von Intels VT-D PCI-Geräte an Gäste durchreichen (u. a. 1, 2, 3); zudem gab es eine Optimierung, die den Startprozess von als KVM-Gast laufenden Betriebssystemen um rund 15 Prozent beschleunigen soll. Für Visualisierung mit Containern bietet der Kernel nun einen Container Freezer, mit dem sich ein Container komplett einfrieren lässt (Dokumentation) – etwa um einen Cluster-Job mit niedriger Priorität vorübergehend komplett anzuhalten. Der Kernel-Code zum Betrieb als Xen-Gastsystem (DomU) ermöglicht nun auch CPU-Hotplugging; neu aufgenommen wurde ferner Xen-DomU- und IOMMU-Unterstützung für Intels Itanium (IA64). Der Xen-Code zum Aufsetzen einer federführenden Xen-Domäne (Dom0) hat die Aufnahme in 2.6.28 wie erwartet nicht geschafft.

Weitere im zu Linux 2.6.28 führenden Hauptentwicklungszweig erfolgte Commits rund um Architektur- und PCI-Code:

x86:

Non-x86:

PCI:

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich auch in den vorangegangen Ausgaben des Kernel-Logs auf heise open:

Ältere Kernel-Logs finden sich über das Archiv oder die Suchfunktion von heise open. (thl)