Dateiüberwachung, Performance-Analyse, Tracing, CUSE

Trends & News | Kernel-Log

Seite 5: Dateiüberwachung, Performance-Analyse, Tracing, CUSE

Das neue Fsnotify ersetzt Dnotify und Inotify, mit denen sich Veränderungen im Dateisystem wie ein Anlegen, Löschen oder Ändern von Dateien überwachen lassen (1, 2, 3). Das eigentliche Ziel des bei Red Hat beschäftigten Entwicklers Eric Paris ist jedoch das auf Fsnotify aufbauende Fanotify, das im Userspace arbeitenden Viren- und Malware-Scannern einen Eingriffspunkt bietet, um Dateien vor dem eigentlichen Zugriff auf Schädlinge überprüfen zu können. Das dahinter stehende Konzept hat Paris kürzlich zur Diskussion gestellt.

Hervorgegangen ist die Idee aus langen Diskussionen um Talpa, das ähnliches leisten sollte, aber bei den Kernel-Entwicklern keinen Anklang fand. Hintergründe liefern die Artikel "Kernel-based malware scanning", "The TALPA molehill" und "The fanotify API" bei LWN.net.

Über die teilweise im Kernel und teilweise im Userspace arbeitenden "Performance Counters" kann der Kernel in Zukunft die gleichnamigen Einheiten moderner Prozessoren auslesen. Sie messen verschiedene für die CPU-Performance wichtige Vorgänge im Prozessor – die Messwerte ermöglicht so eine genaue Analyse des Codeablaufs, um die für die Ausführungsgeschwindigkeit wichtigen Abschnitte später bis ins letzte auf die CPU optimieren zu können. Nicht verwechseln sollte man die gelegentlich "perf_counter" abgekürzten Performance Counters mit Perfmon ("hardware-based performance monitoring interface for Linux"), das seit Jahren ähnliche Funktionen bietet – die Kernel-Hacker haben es nicht in die Linux-Quellen aufgenommen, weil sie mit einigen der Eigenschaften von Perfmon unzufrieden waren. Einige Details zu dieser Konkurrenzsituation liefert der aus Ende 2008 stammende LWN.net-Artikel "Dueling performance monitors"; wie sich die Performance Counters nutzen lassen, beschreibt der neuere LWN.net-Artikel "Perfcounters added to the mainline". Weitere Hintergründe finden sich auch in der Dokumentation.

Über Red-Hat-Entwickler Ingo Molnar fanden nicht nur die Performance Counters, sondern auch zahlreiche Änderungen für den von ihm betreuten Tracing-Bereich den Weg in den Kernel. Im Git-Pull-Request deutet er an, dass die Hauptentwicklungsphase der Tracepoints bald beendet sein dürfte. Er hebt zudem verbesserte Filter, interne Umbauarbeiten und optimierte Performance hervor. Einige der Möglichkeiten, die die Tracing-Infrastruktur aktueller Kernel-Versionen bietet, erklärt Sony-Entwickler Tim Bird in seinem Vortrag " Measuring Function Duration with Ftrace", den wir bereits im Artikel "Tiefschürfend – Die Proceedings des Linux Symposiums 2009" erwähnt haben.

Aufgenommen haben die Kernel-Hacker auch Unterstützung für Profiling mit dem GCC Coverage Testing Tool (gcov). Um Speicherlecks aufzuspüren, können Kernel-Entwickler und -Tester in Zukunft auf die Hilfe von Kmemleak (Dokumentation) zurückgreifen – das Tool fehlinterpretiert jedoch einige Situationen und Konstrukte, daher sollte man den Ausgaben nicht blind trauen. Das ebenfalls neue Kmemcheck (Dokumentation) erkennt die Nutzung nicht-initialisierter Speicherbereiche.

Bei 2.6.31 wird das auf FUSE (Filesystem in Userspace) aufsetzende CUSE (Character device in Userspace) Bestandteil von Linux. Mit seiner Hilfe kann ein Userspace-Programm virtuelle Geräte emulieren, auf die andere Programme über die normalen, zeichenorientierten Device-Dateien genauso zugreifen können wie auf ein "richtiges", von einem Kernel-Treiber bereitgestelltes character device.

Damit lässt sich etwa ein Userspace-Programm schreiben, das das veraltete OSS (Open Sound System) emuliert; dazu legt es mit Hilfe von CUSE die von OSS-Programmen erwarteten Devices an, über die es dann die Daten annimmt, verarbeitet und mit Hilfe des heute gängigen Alsa ausgibt. Genau solch einen OSS-Proxy hat der bei Novell beschäftige Entwickler von CUSE veröffentlicht und zum Testen eingesetzt. Weitere Hintergründe und andere Einsatzmöglichkeiten von CUSE liefert ein älterer LWN.net-Artikel.

Auf x86-64-CPUs adressiert Linux ab 2.6.31 2^46 statt 2^44 Byte Arbeitsspeicher – davon hat derzeit aber kaum jemand was, denn noch sind Systeme mit 16 bis 64 TByte RAM überaus exotisch.

Durch einige von Mel Gorman eingesandte Patches soll der für die Speicherbereitstellung zuständige Page Allocator ein wenig flotter arbeiten – einige Benchmark-Ergebnisse finden sich im Commit-Kommentar.

Die Kernel-Hacker haben den Treiber acerhdf integriert, mit dem sich beim Netbook Aspire One von Acer die Temperaturen auslesen und Lüfter steuern lassen.

Kommentare

Anzeige