Kernel-Log – Was 2.6.35 bringt (4): Architektur- und Infrastruktur-Code

Seite 2: RAM defragmentieren, "make nconfig"

Inhaltsverzeichnis

Durch Memory Compaction (Core, Tunable Konfiguration sowie Trigger für Proc und Sysfs) kann der Kernel bei Bedarf den Arbeitsspeicher defragmentieren, um große, zusammenhängende Bereiche freien Speichers zu schaffen. Solche lassen sich bei modernen CPUs mit großen Speicherseiten (etwa 2 MByte statt 4 KByte großer Pages) nutzen, was den Verwaltungs-Overhead im Prozessor reduziert und so die Performance gerade bei Virtualisierung oder beim Einsatz großer Datenbanken steigern kann. Weitere Hintergründe zur Speicher-Defragmentiertfunktion liefert ein Artikel bei LWN.net.

Der SLAB-Allocator bietet nun Unterstützung für Memory Hotplug. Der SLQB-Allocator, der vor gut einem Jahr Aufsehen erregt hatte, wird wohl nicht mehr in den Kernel einziehen; auch Torvalds hat sich recht deutlich gegen die Aufnahme eines weiteren Memory Allocators ausgesprochen. Christoph Lameter arbeitete jedoch an einigen Verbesserungen für den maßgeblich von ihm programmierten SLUB-Allocator, die LWN.net in zwei Artikel näher erläutert (1, 2) – erklärtes Ziel scheint zu sein, SLUB oder SLAB langfristig so zu verbessern, dass einer der beiden unnötig wird und entfernt werden kann.

Kernel 2.6.35 wird zudem Unterstützung für das in der ACPI-4.0-Spezifikation beschriebene APEI (ACPI Platform Error Interface) inklusive der Error Record Serialization Table (ERST) bieten (u. a. 1, 2, 3, 4, 5, 6, Dokumentation). Über diese Schnittstellen kann die Hardware das Betriebssystem über Hardware-Probleme – etwa beim Chipsatz oder beim Speicher – informieren.

Um die Skalierbarkeit zu verbessern, haben die Kernel-Entwickler die Nutzung des Big Kernel Lock (BKL) abermals reduziert (u. a. 1, 2, 3, 4, 5). Zahlreiche weitere Änderungen in dieser Richtung sind bereits für 2.6.36 in Vorbereitung und sollen den Kernel so verändern, dass alle auf modernen Systemen verwendeten Treiber das BKL nicht mehr verwenden; über einige Hintergründe dazu hatte LWN.net bereits im April berichtet.

Über das neue Make-Target "nconfig" lässt sich ab 2.6.35 ein auf Ncurses aufbauendes Text-Interface zur Kernel-Konfiguration aufrufen, das ein etwas moderneres Bedienkonzept als "menuconfig" bieten will. Den Prefix für die Kommandos zum Cross-Compilen kann man alternativ zur Übergabe beim Aufruf von Make auch in der Konfigurationsdatei festlegen.

Anfang Juni hat Jon Masters die module-init-tools v3.12 freigegeben, mit der modprobe die mit Linux 2.6.35 eingeführten Devnames verwendet. Dadurch kann Udev jetzt einige Module automatisch beim Zugriff auf ein Device-Node laden, bei denen die bisherigen Lade-Automatiken nicht funktionieren.