Programmierbare asynchrone Ein-/Ausgabe auf Basis von io_uring und eBPF

Bereits vor dem Aufkommen der beiden Sicherheitslücken Meltdown und Spectre entstand durch die Moduswechsel bei der Ausführung von Systemaufrufen ein nicht zu vernachlässigender Overhead, der sich negativ auf die Ausführungszeiten von Programmen auswirkt [4, 9]. Durch die eingeführten Maßnahmen gegen die beiden Sicherheitslücken ist der Overhead noch größer geworden [3, 5] – im Extremfall werden Systemaufrufe um den Faktor 5 verlangsamt [7]. Mit einer Systemaufrufsammelschnitt stelle können mehrere aufeinanderfolgende Systemaufrufe ohne zwischenzeitige Rück kehr in den Benutzermodus gesammelt im Kernelmodus ausgeführt werden [6]. Auf diese Weise ist es möglich, die Anzahl an Moduswechsel deutlich zu verringern.

Im Rahmen einer Vorarbeit [8] wurden Systemaufrufmuster häufiger UNIX-Kommandos bezüglich ihrer Kompatibilität zu einer bereits im Ansatz in Linux existierenden Systemaufrufsammelschnittstelle analysiert: io_uring [1]. Die Analyse ergab, dass diese Schnittstelle momentan lediglich für einfache Systemaufrufmuster effektiv anwendbar ist. Für eine breite Anwendung muss von Systemaufrufen abhängige Logik durch die Schnittstelle mit im Kernelmodus ausgeführt werden, wofür sich die eBPF-VM (Extended Berkeley Packet Filter Virtual Machine) des Linuxkernels anbietet.

Ziel dieser Masterarbeit ist es, eine in der Community in Entwicklung befindliche eBPF-Erweiterung [2] für io_uring anhand realistischer und komplexer Anwendungs fälle wie dem Key-Value-Store MrCache, aber auch der in der Vorarbeit identifizierten Problemfälle, zu analysieren. An das erweiterte io_uring angepasste Varianten die ser Programme sollen bezüglich Metriken wie Laufzeit, Transaktionsdurchsatz oder Anzahl Moduswechsel – aber auch nicht-funktionaler Eigenschaften wie Anwender freundlichkeit/Benutzbarkeit der Schnittstelle – bewertet werden. Punktuell sollen hierbei Entwurfsalternativen oder -ergänzungen zur io_uring-Erweiterung, wie die Frage der Synchronisation parallel ablaufender eBPF-Programme, umgesetzt und mite valuiert werden.

Further Reading