Ktap: Rein in den Kernel, raus aus dem Kernel

Ktap schaffte es nur für wenige Tage in den Linux-Kernel. Der Code wurde zwar rechtzeitig für Linux 3.13 eingereicht – das Mergefenster wird vermutlich bis Ende dieser Woche geschlossen werden -, allerdings protestierten einige Entwickler gegen den umfangreichen Patch. Daher wurde er wieder entfernt.
Mit ziemlicher Wahrscheinlichkeit wird Ktap aber in den nächsten Kernel-Versionen aufgenommen werden, denn der Tracepoint-Filter kam bei vielen Kernel-Entwicklern gut an. Die gegenwärtige Kritik richtete sich hauptsächlich gegen die überhastete Aufnahme des Codes und die mangelnde Integration in bestehende Frameworks, wie Kernel-Entwickler Johnathan Corbet schreibt(öffnet im neuen Fenster) .
Die gute Idee eines Neulings
Ktap stammt von Entwickler Jovi Zhangwei, einem Neuling in der Kernel-Entwicklung. Ktap baut einen kleinen Lua-Interpreter in den Linux-Kernel ein, der sich in dessen Tracing-Schnittstelle einklinkt. Entwickler können Ktap Lua-Skripts übergeben, die dann Tracepoints aktivieren und die entsprechenden Daten filtern können, bevor sie an einen, mit entsprechenden Rechten ausgestatteten Benutzer übergeben werden.
Nachdem Greg Kroah-Hartman den Ktap-Code in den Staging-Tree des Kernels 3.13 aufgenommen hatte, hagelte es Proteste. Zunächst schrieb Ingo Molnar(öffnet im neuen Fenster) , der eingereichte Code sei noch nicht hinreichend geprüft worden und generell in einem schlechten Zustand. Es gebe beispielsweise keinerlei Kommentare und kaum Dokumentation, die Code-Teile erkläre. Zudem sei der Patch mit 16.000 Codezeilen so riesig, dass er auf die Schnelle kaum überprüfbar sei.
Mehr Funktionen gefragt
Molnar möchte Ktap auch noch enger mit den bestehenden Tracing-Werkzeugen verzahnt sehen. Statt mit völlig neuen Befehlen ausgestattet zu werden, solle Ktap bestehende Befehle aus Perf Probe übernehmen. Letztendlich solle der Entwickler nur Ergebnisse anfordern und nicht das entsprechende Werkzeug auswählen müssen. Im Vergleich zu dem bestehenden Bytecode-Interpreter für Tracepoints des Kernels habe das Lua-basierte Ktap auch deutlich mehr Potenzial und könnte etwa zusätzlich Bedingungsabfragen verarbeiten. Außerdem möchte Molnar die Möglichkeit haben, in Ktap eingebettete Skripts aus Sicherheitsgründen auch wieder auslesen zu können, damit jeder sehen könne, was in seinem Kernel gerade läuft.
Nachdem auch Steven Rostedt den Code ablehnte(öffnet im neuen Fenster) und Kroah-Hartman ausführlich mit Molnar sprach, wurde der Code wieder entfernt. Es stellte sich auch heraus, dass nur wenige Entwickler Kroah-Hartmans Ankündigung zur Übernahme von Ktap auf Google+(öffnet im neuen Fenster) gelesen hatten.
Der Ktap-Entwickler Zhangwei verspricht die von Molnar und anderen Kernel-Entwicklern gemachten Vorschläge umzusetzen. Langfristig wird Ktap wohl in den Linux-Kernel integriert. Denn auch Molnar bemerkte: "Trotz meiner Kritik hat dieser Code viele der Qualitäten, die ich in einem Tracepoint-Filter sehen möchte."