Kernel-Log: Linux 2.6.35 nimmt Gestalt an | heise online

Kernel-Log: Linux 2.6.35 nimmt Gestalt an

Linux 2.6.35 soll mehr Netzwerk-Durchsatz liefern, die Turbo-Core-Funktion moderner AMD-Prozessoren unterstützen und bei Bedarf Arbeitsspeicher defragmentieren. Auf der LKML sorgt derweil eine Diskussion um die Aufnahme einiger von Google für Android entwickelte Patches für ein erhöhtes Mail-Aufkommen.

vorlesen Druckansicht 8 Kommentare lesen
Lesezeit: 11 Min.
Von
  • Thorsten Leemhuis
Inhaltsverzeichnis

Zwei Wochen nach der Freigabe von Linux 2.6.34 hat Linus Torvalds in der Nacht von Sonntag auf Montag die erste Vorabversion von Linux 2.6.35 veröffentlicht und damit die Aufnahme der größten Änderungen für die in zirka zehn Wochen erwartete Kernel-Version abgeschlossen. Die Merge Window genannte Phase dauerte dieses Mal wieder 14 Tage, nachdem das Zeitfenster bei Linux 2.6.34 etwas kürzer war, was zu Verwirrung bei einigen Subsystem-Verwaltern geführt hatte.

Wie üblich wird die nächste Version der Hauptentwicklungslinie wieder haufenweise Änderungen und Verbesserungen an Infrastruktur und Treibern bringen. Durch einige von Google-Entwickler Tom Herbert eingebrachte Änderungen beherrscht das Netzwerk-Subsystem des Kernels nun etwa Receive Packet Steering (rps) und Receive Flow Steering (rfs) – zwei Techniken, die die Schritte zur Verarbeitung von empfangenen Netzwerkpaketen geschickter auf die verfügbaren Prozessorkerne verteilen, um den Durchsatz zu steigern und Latenzen zu senken.

Durch Memory Compaction soll der Kernel bei Bedarf die Fragmentierung des Arbeitsspeichers reduzieren können – so lassen sich größere Bereiche freien Speichers schaffen, die sich mit großen Speicher-Pages nutzen lassen, was den Verwaltungs-Overhead klein hält. Linux 2.6.35 bringt zudem volle Unterstützung für die Turbo Core genannte Funktion, mit der neuere AMD-Prozessoren ihren Takt bei Teilauslastung steigern.

Weiter ausgebaut haben die Kernel-Hacker die bei Linux 2.6.34 noch rudimentäre Unterstützung für die Stromsparfunktionen bei Radeon-Grafikchips. Ferner führt der Cpuidle-Code nun besser Buch über die Systemauslastung, damit er nicht durch zu aggressive Nutzung der zur Laufzeit nutzbaren Prozessor-Schlafmodi den Datendurchsatz reduziert.

Wie üblich wird das Kernel-Log in den kommenden Wochen in c't und auf heise open über diese und hunderte anderer Neuerungen von Linux 2.6.35 berichten. Insgesamt gab es zwischen 2.6.34 und 2.6.35-rc1 im Hauptentwicklungszweig 8113 Commits, die laut Diffstat 609.506 Zeilen Quellcode einfügen und 270.035 entfernen. Ungefähr zwei Drittel der Quellcodeänderungen modifizieren Treiber-Code.

Die auf Linux-Hardware-Themen spezialisierte Webseite Phoronix will bei Geschwindigkeitstest festgestellt haben, dass der Linux-Kernel des Hauptentwicklungszweigs seit einigen Tagen signifikant langsamer arbeitet als ältere Kernel. Die Webseite widmet der Problematik einen fünfseitigen Artikel unter der Überschrift "The Huge Disaster Within The Linux 2.6.35 Kernel".

Das ist ziemlich viel Aufwand für eine Vorabversion von 2.6.35, denn bis dieser Kernel erscheint, dürften noch knapp zwei Monate verstreichen – zum Zeitpunkt der Tests gab es noch nicht einmal Vorabversionen von 2.6.35, wie die Phoronix-Macher bereits im ersten Absatz anmerken. Die Kernel-Entwickler haben also noch reichlich Zeit, eventuelle Performance-Probleme zu beseitigen.

Berichte über Performance-Probleme bei Vorabversionen finden sich auf der Linux Kernel Mailing List (LKML) ohnehin zuhauf, denn sie werden alle paar Wochen oder Monate von Testern bei AMD, IBM, Intel sowie anderen Firmen und Institutionen gefunden. Das ist aber selbst auf Linux spezialisierten Medien meist keine oder nur eine kurze Erwähnung wert, weil es für die Performance-Unterschiede entweder gute Gründe gibt oder die Probleme bis zur Freigabe der jeweiligen Kernel-Version sowieso beseitigt werden.

Außerdem kann man wie bei jeder Messung über die Relevanz der Tests streiten – Phoronix hat in dieser Hinsicht unter Kernel-Entwicklern nicht unbedingt den besten Ruf (etwa 1, 2, 3). So wurden die jetzigen Tests mit zwei Nettops durchgeführt, in denen schwachbrüstige Atom-Prozessoren stecken. Beide zeigten Einbrüche bei der Performance, der deutlichste trat jedoch bei dem Nettop mit Poulsbo-Chipsatz auf, den viele Linux-Anwender aufgrund der problematischen Treiber-Situation meiden. Das Gerät nutzte zudem das experimentelle, noch nicht für den Produktiveinsatz geeignete Dateisystem Btrfs.

Die Kernel-Entwickler scheinen über das Problem bislang noch nicht informiert worden zu sein, konnten es also auch noch nicht kommentieren – zumindest findet eine Suche nach Phoronix bei bugzilla.kernel.org und auf der LKML bislang keine relevanten Einträge.

[Update 20100601245] Mittlerweile wird die Problematik auf der LKML diskutiert und eine mögliche Ursache genannt, die bereits behoben wurde. Dave Airlie kritisiert in dem Rahmen die Arbeitsweisen von Phoronix ganz allgemein, während Ingo Molnar durchblicken lässt, dass man sich mit solch einer Berichterstattung arrangieren muss. [/Update]

Auch die Betreuer der Stable-Series waren nicht untätig und haben seit dem letzten regulären Kernel-Log die Kernel-Versionen 2.6.27.47, 2.6.32.13, 2.6.32.14, 2.6.33.4 und 2.6.33.5 veröffentlicht. Wie üblich wird nicht explizit ausgewiesen, ob die neuen Versionen Sicherheitslücken stopfen. Unter den Hunderten von kleineren Verbesserungen und Korrekturen der Stable-Kernen findet sich bei 2.6.32.13 und 2.6.33.4 ein auch in 2.6.34 integrierter Patch, der die jüngst bekannt gewordene Performance-Schwäche bei Phenom-Prozessoren mit Turbo Core beseitigt.

Greg Kroah-Hartman erklärt in der Freigabe-Mail zu Linux 2.6.33.5, dass dies wohl die vorletzte Version von Linux 2.6.33 sein werde; wer noch einen 33er-Kernel einsetzt, soll einen Umstieg auf Linux 2.6.34 erwägen.

Für reichlich Traffic auf der LKML sorgt kürzlich eine Diskussion um die von Google-Entwicklern eingebrachte und für Android gedachte Suspend Block API (in früheren Inkarnationen "Wakelocks" genannt). Darüber können einzelne Anwendungen oder Treiber dafür sorgen, dass das System nicht wie sonst üblich in einen Schlafzustand wechselt, wenn es nicht benutzt wird. Auf dieses Funktion hat aber längst nicht jede Software Zugriff – das soll sicherstellen, dass unsauber programmierte Anwendungen nicht die Batterie von Smartphones leer saugen. Weitere Hintergründe zur Funktionsweise liefert ein Mitte Mai erschienener LWN.net-Artikel, der auf mehrere ältere Artikel und weitere Quellen zum Thema verweist.

Nach mehreren, teilweise schon langen Diskussionen in den vergangenen Wochen hat Power-Management-Maintainer Rafael J. Wysocki die Suspend-Block-Patches kürzlich in seinen Entwicklerzweig integriert und Torvalds einen Git-Pull-Request mit der Bitte um Aufnahme in den Hauptentwicklungszweig von Linux gesendet. Daraufhin schalteten sich mehrere Kernel-Größen verstärkt in die Diskussionen ein, sodass die zuvor schon hitzige Diskussion an Tempo noch weiter zunahm.

Hauptkritikpunkt einiger Linux-Entwickler: Der ganze Ansatz sei ungeschickt und gehöre nicht in den Kernel. Einige andere Kernel-Entwickler halten die Patches für akzeptabel, da bislang keine bessere Lösung für das Problem in Sicht sei, dass Google zu lösen versucht. Über das Wochende kam die Diskussion schließlich weitgehend zur Ruhe – es scheint, als würde zumindest der ein oder andere Kernel-Hacker auf eine Einmischung von Torvalds warten, der sich bislang nicht zu Wort gemeldet hat und auch die Patches außen vor ließ.

Kernel

  • TuxOnIce-Entwickler Nigel Cunningham will sich in nächster Zeit verstärkt darum bemühen, einige Funktionen der Software-Suspend-Technik in den Hauptentwicklungszweig von Linux zu integrieren.
  • Christoph Hellwig gibt im "XFS status update for April 2010" einen Überblick über die jüngsten Änderungen rund um das XFS-Dateisystem.
  • Mauro Carvalho Chehab hat in einer LKML-Mail die Themen und Diskussionen des Mitte April abgehaltenen "Hardware Error Kernel Mini-Summit" zusammengefasst. Hauptthema war eine Zusammenlegung der Subsysteme MCE und EDAC zu einem "Error Subsystem".

Grafik

  • Nvidia hat die erste 256er-Generation der Linux-Grafikkartentreiber vorgestellt (256.25 Beta) und kürzlich eine zweite nachgereicht.
  • Zusätzlich zum bisherigen Mesa-3D-Treiber für Radeon-Grafikchips der r600/r700-Generation enthält der Hauptentwicklungszweig von Mesa nun auch einen zweiten, der auf Gallium3D aufsetzt; er ist aber nur experimentell und bietet längst nicht den Funktionsumfang des älteren Treibers.
  • Dem monatlichen Rhythmus folgend hat AMD Ende Mai die Version 10.5 der proprietären Linux-Grafiktreiber veröffentlicht. Der Treiber enthält nun als "Early Look" klassifizierte Unterstützung für das Service Pack 1 von Suse Linux Enterprise (SLED/SLES) 11, läuft aber immer noch nicht zusammen mit dem aktuellen X-Server 1.8. Einige weitere Änderungen des als Fglrx oder Catalyst bekannten Grafiktreibers listet das Changelog.
  • Keith Packard hat kürzlich in einer Mail einige Details zum Entwicklungsstand des X-Server 1.9 zusammengefasst.

Kernel-Umland ("Plumbing layer"), Userland-Treiber, Entwicklertools

  • Kay Sievers hat die Udev-Versionen 155 und 156 freigegeben.
  • Upstart-Hauptentwickler Scott James Remnant erläutert in seine Blog einige Unterschiede zwischen den Arbeitsweisen von Upstart, SysV-Init und dem kürzlich vorgestellten Systemd.
  • Alan Ott hat den Artikel "How to use libudev and Sysfs" veröffentlicht und auf der LKML um Kommentare gebeten.
  • Peter Hutterer erläutert in einem Blog-Eintrag, wie man die in den Standard-Einstellungen von Gnome üblicherweise deaktivierte Klick-Funktion ("Tapping") einschaltet. Anlass dürfte eine Mail von Linus Torvalds gewesen sein, dessen Tochter sich über ein nicht richtig arbeitendes Touchpad beschwert hatte.
  • Die Entwickler des Projekts Hplip haben Mitte Mai die Version 3.10.5 der gleichnamigen Treibers für Drucker und Multifunktionsgeräte von HP veröffentlicht.
  • Mit der kurz nach Linux 2.6.34 veröffentlichte Version 2.6.34 von iproute2 bietet die Netzwerk-Tool-Sammlung nun Unterstützung für SR-IOV und Tuntap.
  • Util-linux-ng-Maintainer Karel Zak hat in seinem Blog einige der jüngsten Entwicklungen rund um das Zusammenspiel von Linux und Festplatten mit 4-KByte großen Sektoren zusammengefasst.
  • Jens Axboe, Verwalter des Block-Subsystems von Linux, wechselt von Oracle zu Fusion-IO.
  • Ext-Dateisystementwickler Theodore 'tytso' Tso hat die Version 1.41.12 der Dateisystemtool-Sammlung E2fsprogs veröffentlicht.

Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs auf heise open. Neue Ausgaben des Kernel-Logs werden auf den Identi.ca- und Twitter-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H" erscheinenden Übersetzungen auf den Identi.ca- und Twitter-Konten "@kernellog2". Der Autor des Kernel-Logs zwitschert unabhängig davon über einige Kernel-Log-Themen bei Identi.ca und Twitter als "@kernellogauthor". (thl).

(thl)