Kernel-Log – Was 3.17 bringt (1): Storage & Netzwerk
Der USB/IP-Stack, der USB-Geräte per TCP/IP an andere Systeme überstellt, ist jetzt ein vollwertiger Bestandteil des Linux-Kernels. SCSI-Treiber können nun auf die Block-Layer-Infrastruktur für besonders schnelle Datenträger zurückgreifen.
- Thorsten Leemhuis
Die Entwicklung von Linux 3.17 ist mittlerweile bei der fünften Vorabversion angelangt. Mit dem fünften RC ist die Freigabe einer neuen Kernel-Version meist nur noch zwei Wochen entfernt. Torvalds denkt aber darüber nach, die Veröffentlichung von 3.17 noch bis Mitte Oktober hinauszuzögern, denn er will vermeiden, dass die Hauptentwicklungsphase von 3.18 mit seiner Reise zur LinuxCon Europe in Düsseldorf kollidiert.
Alle wesentlichen Änderungen für 3.17 haben die Kernel-Entwickler wie gewohnt in den ersten beiden Wochen seit Beginn der Entwicklungs aufgenommen. Seitdem gab es nur noch kleine Änderungen, daher kann das Kernel-Log schon jetzt die wesentlichen Änderungen dieser Kernel-Version beschreiben. Das erfolgt wie üblich in einer mehrteiligen Artikelserie, die sich als erstes den Neuerungen rund um Datenspeicherung und Netzwerk-Unterstützung beginnt. In den kommenden Wochen folgen Artikel zu Prozessor-Unterstützung, Kernel-Infrastruktur und Treibern.
Storage
Das SCSI-Subsystem und seine Treiber können nun auf den bei Linux 3.13 integrierten und bei 3.16 verbesserten Multi-Queue Block IO Queueing Mechanism (blk-mq) zurückgreifen. Er kann Datenträger mit mehreren Warteschlangen ansprechen, was erforderlich ist, um die Leistungsfähigkeit der heute schnellsten Datenträger auszuschöpfen; dazu zählen über PCIe angesprochene SSDs, die um einiges schneller arbeiten als per SATA angebundene Desktop- und Notebook-SSDs. Die Blk-Mq-Unterstützung im SCSI-Code gilt aber noch als experimentell und soll bei weniger schnellen Datenträgern noch langsamer arbeiten als der bislang genutzte Codepfad; fürs Erste muss man den neuen Codepfad daher über den Modul-Parameter "use_blk_mq" explizit einschalten.
USB via TCP/IP
Der USB/IP-Stack, der den Zugriff auf lokale USB-Geräte über eine Netzwerkverbindung von anderen Rechnern aus ermöglicht, hat den Staging-Bereich verlassen (u. a. 1, 2). Dadurch dürften die USB/IP-Treiber und die zugehörige Userspace-Software nun auch in Linux-Distributionen auftauchen, die Staging-Code aufgrund seiner Qualitätsmängel und der unsicheren Support-Situation meiden.
USB/IP wurde ursprünglich vom USB/IP Project entwickelt. Das hat auch Treiber und Werkzeuge im Angebot, durch die ein Windows-PC auf ein USB-Gerät zugreifen kann, das ein Linux-System per USB/IP freigibt. Die Windows-Software und die Projekt-Webseite wurden allerdings seit 2011 nicht mehr aktualisiert.
Dateisysteme
Der XFS-Dateisystemcode stellt in Sysfs nun einige Informationen zu Partitionen mit XFS bereit.
Das zum Zugriff auf Windows- und Samba-Server genutzte CIFS-Dateisystem soll Aussetzer der Netzwerk-Verbindung nun besser verkraften. Beim SMB2- und SMB3-Protokoll beherrscht CIFS jetzt "multi-credit", was unter anderem die Performance beim Zugriff großer Dateien verbessern kann (1, 2). Ferner unterstützt es bei SMB3 jetzt Fallocate – einen bei 2.6.38 eingeführten Systemaufruf, mit dem Programme ein Dateisystem über ungenutzte Dateibereiche informieren können, um den davon belegten Speicherplatz freizugeben (1, 2).
Das bei 3.8 integrierte Flash-Friendly File System (F2FS) unterstützt nun die Mount-Option "nobarrier"; wie bei Ext-Dateisystemen, XFS und Co. kann sie die Geschwindigkeit steigern, erhöht aber gleichzeitig das Datenverlustrisiko bei Abstürzen. Das maßgeblich von Samsung vorangetriebene Dateisystem für Datenträger mit Flash-Chips unterstützt nun auch das bei 3.11 eingeführte Open-Flag O_TMPFILE; mit ihm lassen sich temporäre Dateien anlegen, die beim Auflisten der Dateisysteminhalte nie zu sehen sind und beim Schließen der Datei gelöscht werden.
Das NFS-Dateisystem nutzt RCU (Read-copy-update) nun intensiver, was das Auflisten von Dateisysteminhalten beschleunigen kann (u.a. 1). Der NFSv4-Server-Code soll dank einiger Locking-Optimierungen besser skalieren.
Bei Ext4 gab es nur kleinere Fehlerkorrekturen und Aufräumarbeiten. So war es auch bei Btrfs, denn einen größeren Schwung an Btrfs-Änderungen hatte Torvalds abgelehnt, weil der Btrfs-Maintainer sie erst ganz am Ende der Hauptentwicklungsphase eingeschickt und kurz vorher noch überarbeitet hatte.
Netzwerktreiber
Der Treiber i40e für 10G- und 40G-Netzwerkchips der XL710-Serie von Intel beherrscht nun FCoE (Fibre Channel Over Ethernet) (u.a. 1, 2, 3). Der WLAN-Treiber brcm80211 unterstützt jetzt Broadcoms PCIe-Chips 43602, 4354, 4356, 43567 und 43570.
Merge Commits
Es gab noch hunderte andere Änderungen am Code der beschriebenen Kernel-Bereiche. Informationen zu diesen finden Sie über die folgenden Links, die auf Git-Merge-Commits verweisen, mit denen die wesentlichsten Neuerungen dieser Bereiche in Linux 3.17 eingeflossen sind; die Git-Merge-Kommentare enthalten zumeist eine Beschreibung, die die wichtigsten Änderungen des jeweiligen Subsystems nennt.
Netzwerk
Storage
- Pull block core bits from Jens Axboe
- Pull block driver changes from Jens Axboe
- Pull device mapper changes from Mike Snitzer
- Pull libata fixes from Tejun Heo
- Pull libata fixes from Tejun Heo
- Pull md updates from Neil Brown
- Pull MMC updates from Ulf Hansson
- Pull SCSI updates from James Bottomley
Dateisysteme
- Pull btrfs fixes from Chris Mason
- Pull btrfs fixes from Chris Mason
- Pull btrfs updates from Chris Mason
- Pull Ceph updates from Sage Weil
- Pull cifs fixes from Steve French
- Pull CIFS updates from Steve French
- Pull ext4 updates from Ted Ts'o
- Pull f2fs updates from Jaegeuk Kim
- Pull NFS client updates from Trond Myklebust
- Pull nfsd updates from Bruce Fields
- Pull quota, reiserfs, UDF updates from Jan Kara
- Pull UBI/UBIFS changes from Artem Bityutskiy
- Pull vfs updates from Al Viro
- Pull xfs fixes from Dave Chinner
- Pull xfs update from Dave Chinner
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 dem Twitter-Konto "@kernellog" annonciert.