Kernel-Log – Was 2.6.36 bringt (3): Infrastruktur

Seite 3: Verschiedenes, kleine Perlen

Inhaltsverzeichnis
  • Die Kernel-Hacker haben die Nutzung des Big Kernel Lock (BKL) im Infrastruktur-Code und zahlreichen Treibern weiter reduziert – unter anderem auch im TTY-Subsystem, was selbst einige der erfahrensten Kernel-Hacker vor Schwierigkeiten gestellt hat. Damit nähern sich die Entwickler weiter dem Ziel, dass der Kernel auf Standard-Systemen ohne diesen sperrigen Locking-Mechanismus arbeitet, der die Skalierbarkeit und die System-Performance verschlechtert.
  • Der x86-Code unterstĂĽtzt nun die Power Limit Notifications von Intels Sandy-Bridge-Prozessoren, die Anfang nächsten Jahres erwartet werden (1, 2, 3). Der neue Hwmonitor-Treiber pkgtemp baut darauf auf kann unter anderem die Temperatur des Prozessors auslesen (1, Dokumentation)
  • Der Prozess-Scheduler reduziert in bestimmten Situation nun den Wettbewerb zwischen Kernel-Threads, die eine exklusive Kontrolle ĂĽber eine belegte Ressource erlangen wollen. Dadurch kann der aktive Prozess ungestörter arbeiten, was den Datendurchsatz teilweise erheblich steigert (Commit, LWN.net-Artikel).
  • Wie bei seine Vorgänger bringt auch 2.6.36 zahlreiche Ă„nderungen am Debugging-, Performance-Monitoring- und Tracing-Code. Das Ftrace-Plugin kmemtrace etwa haben die Kernel-Hacker entfernt, da sich die Funktionen nun ĂĽber die Trace-Events von Typ "kmem" sowie "perf kmem" erledigen lassen. Wie bereits im ersten Teil der "Was 2.6.36 bringt"-Serie näher beschrieben, bietet der Kernel auf Systemen mit Intel-KMS-UntersĂĽtztung nun eine KDB-Debugger-Shell, um dort etwa die Ursache fĂĽr einen Absturz des X-Servers analysieren zu können, wenn der Wechsel auf eine Textkonsole nicht mehr möglich ist und keine serielle Konsole konfiguriert ist.
  • Fast einen Monat nach dem Ende des Merge Window haben die Kernel-Hacker eine Ă„nderung am Prozess-Scheduler vorgenommen, durch den der Scheduler die maximalen Wartezeiten insbesondere auf Desktop-Systemen reduzieren soll, wenn parallel andere Prozesse CPU-Zeit fordern – das verspricht eine bessere Reaktionsgeschwindigkeit, wodurch sich das System flotter anfĂĽhlen soll. Die der Ă„nderung vorausgegangene Diskussion und der Commit-Kommentar erläutern HintergrĂĽnde und liefern Messwerte, laut denen sich die maximale Latenz im Test-Szenario beinahe halbiert hat.
  • Die Kernel-Hacker wollen mit 2.6.36 das Problem beseitigt haben, durch das sich Systeme mit 2.6.35 und einigen frĂĽheren Kernelversionen unter bestimmten Bedingungen extrem langsam anfĂĽhlten oder zeitweise gar nicht mehr reagierten, während der Kernel größere Datenmengen auf ein langsames Medium (etwa einen USB-Stick) schrieb (u. a. 1).
  • Die Sicherheitserweiterung Tomoyo bietet nun einen "Interactive Enforcing Mode", mit dessen Hilfe Administratoren im Betrieb entscheiden können, ob sie eine Verletzung der Policy ignorieren wollen. Ein Youtube-Video illustriert die Funktionsweise.
  • Stefani Seibold hat das bei 2.6.32 bereits erheblich ĂĽberarbeite Kfifo-API ein weiteres mal verändert, um Performance zu verbessern und ein besseres API zur VerfĂĽgung zu stellen (u. a. 1, 2). Die alten API-Calls werden aber weiter unterstĂĽtzt, die neuen Möglichkeiten erläutern einige Beispiele.
  • Ăśber das Make-Target "coccicheck" lässt sich nun Coccinelle aufrufen – ein Programm zur semantischen Code-Analyse, das Programmierern beim Refaktorieren von Code Arbeit abnehmen kann. Details zu den Möglichkeiten liefern die Kernel-Dokumentation und ein im FrĂĽhjahr letzten Jahres erschienener Artikel bei LWN.net.

Viele kleinere, aber keineswegs unbedeutende Neuerungen finden sich in der folgenden Liste mit den englischen Commit-Überschriften der jeweiligen Änderung. Die Einträge verlinken genau wie viele der Verweise im vorangegangenen Text auf das Webfrontend des von Linus Torvalds gepflegten Git-Zweigs mit den "offiziellen" Kernel-Quellen auf Kernel.org. Der über diese Links angezeigten Commit-Kommentar und der darunter ausgegebene Patch liefern zahlreiche weitere Informationen zur jeweiligen Änderungen.

Vor jedem Link finden sich in eckigen Klammern einige Buchstaben und Zahlen. Ein "C" kennzeichnet Patches mit Änderungen an Kconfig-Dateien, welche die Hilfetexte und Konfigurationsoptionen enthalten, die bei der Kernel-Konfiguration über "make menuconfig", "make xconfig" und ähnliche Werkzeuge angezeigt werden. Ein "D" steht bei Patches, die die Dokumentation verändern, die im Kernel-Zweig unterhalb von Documentation/ liegt. Ein "N" weist Änderungen aus, die eine neue Datei anlegen. Die Zahl vermittelt einen groben Eindruck zur Größe des Patches: eine "1" steht für Änderungen, die inklusive Kommentar zwischen 10 und 20 KByte groß sind, eine "2" für solche, die zwischen 20 und 30 KByte Umfang haben; Änderungen ohne Zahl sind kleiner als 10 KByte, Patches mit einer "9" hingegen 90 KByte oder größer.

Crypto & Security

Debugging-, Performance-Monitoring- und Tracing-Code

Memory Management

Various Infrastructure