Zum Hauptinhalt Zur Navigation

Linux 3.12: Bessere Taktung für mehr Leistung

Im Linux-Kernel 3.12 ist der Algorithmus des On-Demand-Governors angepasst worden. Das soll nicht nur den Energieverbrauch verringern, sondern auch die Leistung teils deutlich verbessern. Linus Torvalds denkt derweil über einen Bugfix-Release nach.
/ Jörg Thoma
10 Kommentare News folgen (öffnet im neuen Fenster)
Der Linux-Kernel 3.12 steht zum Download bereit. (Bild: Ben Tubby/CC-BY 2.0)
Der Linux-Kernel 3.12 steht zum Download bereit. Bild: Ben Tubby/CC-BY 2.0

Linus Torvalds hat den Linux-Kernel 3.12 freigegeben(öffnet im neuen Fenster) . Eine kleine Änderung an dem Algorithmus des On-Demand-Governors soll die Taktungssteuerung von CPUs besser verwalten. Neben einem niedrigen Energieverbrauch soll damit auch die Leistung des Kernels verbessert worden sein, vor allem bei grafiklastigen Anwendungen. Viel Arbeit wurde zudem in den Grafikstack gesteckt, unter anderem in die freien Treiber für Grafikchips von Nvidia und AMD. Der Code für die in Linux 3.10 eingeführten reduzierten Ticks wurde nochmals verbessert.

In der Freigabe-Mail denkt Torvalds über die Nummerierung des Kernels und eine mögliche Bugfix-Version nach, denn auf dem letzten Kernel-Summit hatte Kernel-Entwickler Dirk Hohndel vorgeschlagen, dass sich die Kernel-Entwickler für eine Kernel-Ausgabe nur der Fehlerbeseitigung widmen. Torvalds hatte den Vorschlag zunächst abgelehnt. Er war davon ausgegangen, dass die Kernel-Entwickler lieber neue Funktionen einreichen und sich für ein Bugfix-Release stattdessen einfach eine Auszeit nehmen.

Inzwischen hat sich Torvalds' Meinung offenbar geändert. Der Wechsel der Zählung von 3.x auf 4.x sei für die ausgiebige Fehlersuche eine gute Gelegenheit. Da die 3er Reihe bereits eine zweistellige Versionsnummer hinter dem Punkt habe, wäre ein Wechsel von 3.19 auf 4.0 angebracht. Das würde im Laufe des nächsten Jahres passieren. In seiner Mail stellt Torvalds(öffnet im neuen Fenster) seinen Vorschlag jetzt zur Diskussion.

Stromsparen mit Radeon-Treibern

Der Grafikstack in Linux 3.12 erhält reichlich Änderungen. Die in Linux 3.11 eingebrachten Anpassungen des Radeon-Treibers für Grafikchips von AMD funktionieren jetzt auch mit einigen aktuellen und auch zukünftigen Versionen der Grafikchips. Mit einer dynamischen Energieverwaltung lassen sich etwa die Taktrate und die Voltzahl für solche Chipsätze dem Bedarf anpassen. Das soll unter anderem AMD-GPUs zugutekommen, die beim Systemstart eine niedrigere Taktfrequenz aufweisen als die, mit der sie später laufen. Außerdem verringern die Anpassungen die Leistungsaufnahme von AMD-GPUs in Linux-Systemen. Sie gelten aber weiterhin als experimentell und sind deshalb in Linux 3.12 noch nicht standardmäßig aktiviert, sondern müssen mit der Option "radeon.dpm=1" beim Systemstart eingeschaltet werden. Noch gibt es beispielsweise Probleme bei der Tonausgabe über HDMI.

Wer bislang Bumblebee nutzt, um die zweite GPU in Nvidias Optimus-Lösung zu deaktivieren, kann ab Linux 3.12 darauf verzichten. Mit einem Patch geschieht das künftig automatisch, wenn die zusätzliche GPU nicht in Gebrauch ist. Dadurch verringert sich die Leistungsaufnahme auf einigen Geräten um bis zu 5 Watt. Der Nouveau-DRM-Treiber hat neuen Code erhalten, mit dem die VP3-Video-Engine Mpeg-2 und VC-1-Videos direkt auf der Hardware decodieren kann.

Linux 3.12 kann besser mit Haswell

Linux 3.12 kann künftig auf den integrierten eLLC-Cache der Grafikeinheiten Iris Pro in Intels Haswell-SoCs zugreifen. Damit lassen sich zusätzlich 128 MByte nutzen, was die Leitungsfähigkeit bei 3D-Anwendungen deutlich erhöhen soll. Zudem wurde die Energieeffizienz des Treibers nochmals erhöht, indem der tiefere Schlafmodus C8+ für Haswells ULT-Chipverbund aktiviert wurde. Diese Chips namens Ultra Light and Thin werden in Ultrabooks verbaut, unter anderem aber auch in Apples Macbook Air . Mit aktiviertem Panel Self Refresh (PSR) wird die Leistungsaufnahme auf Haswell-Chipsätzen nochmals verringert. Der von den Intel-Entwicklern(öffnet im neuen Fenster) beigesteuerte Treiber steuert künftig auch 4K-Monitore über HDMI an.

Getrennte Knoten

Ab Linux 3.12 können die Grafikfunktionen Direct Rendering Manager (DRM) und Kernel Mode Settings (KMS) getrennt angesteuert werden . Über mehrere Render-Nodes sollen Anwendungen – auch mehrere – GPUs effizienter nutzen können. Die Aufteilung vom Rendering im DRM und KMS soll vor allem den Grafikeinheiten auf der ARM-Plattform zugutekommen. Denn auf den meisten aktuellen Grafikkarten von AMD, Intel oder Nvidia sind GPU und der Displaycontroller auf derselben Karte. Die Funktion gilt aber noch als experimentell.

Der On-Demand-Governor soll künftig Frequenzen proportional zur aktuellen Last auswählen können. Das reduziert vor allem das ständige Umschalten zwischen niedrigen und hohen Taktfrequenzen. Der Kernel-Entwickler Stratos Karafotis hat damit nicht nur einen reduzierten Energieverbrauch gemessen(öffnet im neuen Fenster) , sondern auch eine höhre Leistung. Die Webseite Phoronix(öffnet im neuen Fenster) meldet hingegen eine deutliche Leistungssteigerung bei ihren Benchmarktests mit AMD- und Nvidia-Grafikchips im Zusammenspiel mit den entsprechenden freien Radeon- und Nouveau-Treibern.

Dateisysteme, mehr Trim und Netzwerk

Nachdem das verteilte Dateisystem Lustre in Linux 3.11 wegen unzureichend funktionierender Codes noch nicht freigeschaltet wurde, hat Greg Kroah-Hartman jetzt Patches dafür eingereicht, die offensichtlich die letzten Fehler beseitigen. Zusätzlich erhalten die Dateisysteme F2FS, EXT4 und Btrfs weitere Verbesserungen.

Das Btrfs-Dateisystem erhält eine erste Unterstützung für die Out-of-Band Deduplication von Datenblöcken(öffnet im neuen Fenster) . User-Space-Anwendungen können dem Kernel mitteilen, ob reservierte Speicherbereiche identische Daten enthalten. Zunächst vergleicht der Kernel die beiden Bereiche und weist dann zwei Dateien auf denselben Speicherbereich. Das geschieht allerdings noch nicht direkt beim Schreiben von Daten, wie es bereits bei ZFS umgesetzt ist. Diese Funktion soll später nachgereicht werden.

Ext4 braucht weniger RAM

Verbesserungen beim Zwischenspeichern von Extents im Dateisystem Ext4 sorgen dafür, dass weniger Arbeitsspeicher beansprucht wird und sollen auch einen Leistungsschub bei asynchronen Lese- und Schreibvorgängen bringen. Weitere Verbesserungen gibt es bei der Wiederherstellung von beschädigten Belegungsbitmaps und bei der Einbindung von extern gelagerten Dateisystem-Journals.

Bislang mussten die User Namespaces im Kernel deaktiviert werden, wenn das Dateisystem XFS zum Einsatz kommen sollte. User Namespaces werden in erster Linie für die Virtualisierung in Containern genutzt. XFS unterstützte sie aber bislang nicht. Neue Patches reichen die Funktion jetzt für das Dateisystem nach(öffnet im neuen Fenster) . Zusätzlich kann XFS Dateien auf Partitionen mit vielen Dateisystemeinträgen schneller finden.

Komprimierter Arbeitsspeicher

Auf Systemen mit wenig Arbeitsspeicher soll die Komprimierung mit ZRAM helfen. ZRAM gilt ab Linux 3.12 nicht mehr als experimentell. Das Kompressionsverfahren wird vor allem von Android und Cyanogenmod sowie in ChromeOS genutzt. Da die Komprimierung im Arbeitsspeicher auch Schreibvorgänge auf Datenträger reduziert, erhöht ZRAM auch die Lebensdauer von SSDs.

Mit dem Kommandozeilenbefehl blkdevparts(öffnet im neuen Fenster) lässt sich die Partitionstabelle eines Geräts mit fester Blockadressierung an der Konsole anzeigen. Die feste Blockadressierung kommt beispielsweise auf eingebettetem Speicher zum Einsatz. Normalerweise haben solche Speichermedien keinen MBR, können aber etwa eine Bootloader enthalten. Mit Blkdevparts lässt sich etwa die Speicheradresse des Startsektors auslesen.

Thunderbolt, aber nicht für Macsr

Zahlreiche Änderungen sind in den ACPI-Stack integriert worden. Systeme werden jetzt unterstützt, bei denen das Hotplugging für Intels Thunderbolt per ACPI möglich ist. Geräte von Apple sprechen Thunderbolt-Geräte aber nicht über ACPI an(öffnet im neuen Fenster) . Die Probleme des Linux-Kernels mit der Thunderbolt-Schnittstelle in Macbooks führt Kernel-Entwickler Greg-Kroah-Hartman darauf zurück(öffnet im neuen Fenster) , dass sich Apple nicht an die Spezifikationen hält.

Im Zusammenspiel mit Xen und ACPI funktioniert der Ruhezustand besser. Insgesamt wurde der Code des ACPI-Stacks aufgeräumt und verbessert, was auch eine geringere Leitungsaufnahme der Kernels nach sich zieht. Der ACHI-Treiber in Linux 3.12 unterstützt den SATA-Standard "Queued DSM Trim". Damit lassen sich Informationen über freigewordenen Speicher an SSDs übertragen, die dann selbst bei Bedarf die Befehle ausführen. Diese Informationen werden über die Kernel-Funktion "Online Discard" verwaltet, die in den Mount-Optionen aktiviert werden kann. Bislang sorgte das auf manchen Systemen für einen Leistungseinbruch und wurde deshalb über den Batch-Discard-Befehl erledigt, der beispielsweise als Cronjob eingerichtet werden musste.

Gewappnet gegen SYN-Flood-Angriffe

Die Änderungen am Netzwerkstack sind in Linux 3.12 recht bescheiden. Der neue Kernel kann SYN-Flooding-Angriffe nun selbst abwehren. Dazu lässt sich die integrierte Firewall als Proxy einrichten, der SYN-Anfragen überprüft und nur dann weitergibt, wenn ein Client mit einem ACK-Paket antwortet. Der Fair Queue Packet Scheduler reduziert bei Bedarf das Zwischenspeichern von Paketen im Netzwerk und mit TCP Segmentation Offload (TCO)(öffnet im neuen Fenster) kann der Kernel Paketgrößen anpassen. Code für den Netfilter Nftables hat es hingegen nicht in den Linux-Kernel 3.12 geschafft.

Der Quellcode von Linux 3.12 steht unter kernel.org(öffnet im neuen Fenster) zum Download bereit.


Relevante Themen