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

Optimierungen am Powermanagement-Code und volle Unterstützung für die Turbo-Core-Funktion von AMDs jungen Sechkern-Prozessoren steigern Datendurchsatz und Rechengeschwindigkeit von Linux 2.6.35. Zum Kernel stießen ferner Tracing-Schnittstellten für KVM, ein weiteres Programm zur Kernel-Konfiguration sowie Funktionen zum Defragmentieren des Arbeitsspeichers.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
Lesezeit: 37 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Am Donnerstag Abend hat Linus Torvalds die sechste Vorabversion des Kernels 2.6.35 veröffentlicht. In der Freigabe-Mail deutete er dabei an, dass dies die letzte Vorabversion vor der Fertigstellung von Linux 2.6.35 sein könnte.

Das Kernel-Log will daher die Mini-Serie "Was 2.6.35 bringt" mit der Beschreibung der Neuerungen rund um den Architektur- und Infrastruktur-Code fortsetzen. Der erste Teil der Mini-Serie hatte sich mit den Änderungen rund um Grafik-Hardware beschäftigt, der zweite mit Storage und Dateisystemen, der dritte mit Netzwerk-Code und -Treibern; ein Artikel zu Treibern für Audio-Hardware, USB, V4L/DVB und Co. wird die Mini-Serie in einigen Tagen abschließen.

Der Cpuidle-Code führt nun Buch über die letzten Schlafphasen des Prozessors und versucht wiederkehrende Muster zu erkennen – etwa ein häufiges Aufwachen kurz nach dem Schlafen legen. Diese Informationen nutzt der Code, um besser entscheiden zu können, ob und wie tief er den Prozessor in der nächsten Ruhephase schlafen legt. Der Ondemand-Governor des Cpufreq-Codes wertet nun die Wartezeit auf die Fertigstellung von I/O-Aufgaben bei manchen Prozessoren wie normale CPU-Last, sofern man es nicht anders konfiguriert. Diese beiden Änderungen sollen den Datendurchsatz von manchen teilausgelasteten Systemen deutlich steigern, denn in der Vergangenheit hatte der Kernel bei manchen Systemen und Zugriffsmustern die CPU-Stromsparmodi zu aggressiv genutzt, sodass Einschlaf- und Aufwachzeiten der CPU den Datenfluss erheblich verlangsamten – etwa beim Laptop von Andrew Morton, wo eine Aufgabe zirka 30 bis 40 Prozent langsamer arbeitete, wie Ingo Molnar in Git-Pull-Request zu den Änderungen am Prozess-Scheduler erläutert.

Erheblich überarbeitet und ausgebaut haben die Entwickler die Dokumentation rund um das PCI Powermanagement und die kürzlich erheblich überarbeitenden Funktionen zum Device Power Management (1, 2, Fassung nach zweiter Überarbeitung); für letztere gab es zudem noch einige Korrekturen. Auch am Code für PM QOS (Power Management Quality of Service) gab es einige Verbesserungen, wie Subsystem-Maintainer Rafael J. Wysocki in seinem Git-Pull-Request hervorhebt.

Dem Kernel liegt nun der experimenteller Treiber intel_idle bei, der direkt einige Stromsparmechanismen von Intel-CPUs kontrolliert, statt dies den manchmal schlecht programmierten ACPI-BIOSen zu überlassen – Hintergründe dazu liefert neben dem Commit-Kommentar auch eine Meldung bei LWN.net. 2.6.35 unterstützt "Timer Slacks" in Zukunft auch auf Systemen ohne High Resolution Timer. Prozessoren können so gelegentlich länger schlafen, da der Kernel mehrere Aufgaben in einem Schwung mit anderen Arbeiten erledigen kann, sofern diese nicht zu einer bestimmten Zeit, sondern nur irgendwann innerhalb eines vordefinierten Zeitfensters abzuarbeiten sind.

Einige von Dominik Brodowski eingebrachte Patches beseitigen einige Unsauberkeiten im PCMCIA-Code und enthalten kleinere Verbesserungen; Hintergründe dazu finden sich in den Vortragsfolien und der Textfassung eines Vortrags, den Brodowski auf dem diesjährigen LinuxTag gehalten hat.