Artikel-Update: Der am späten gestrigen Abend veröffentlichte stabile
Linux-Kernel 4.14.11 (Download) enthält erstmals die vollständige PTI-Implementierung (genauso wie Linux 4.15-rc6). Ob Unterstützung für PTI in den laufenden Kernel eingebaut ist, verrät die Ausführung des Befehls
zgrep CONFIG_PAGE_TABLE_ISOLATION /proc/config.gz
. Falls die Ausgabe „CONFIG_PAGE_TABLE_ISOLATION=y“ lautet, dann unterstützt der laufende Kernel PTI, andernfalls nicht. Ob PTI-Unterstützung nicht nur vorhanden ist sondern auch tatsächlich genutzt wird, verrät der Befehl
dmesg | grep isolation
. Falls die Ausgabe „Kernel/User page tables isolation: enabled“ lautet, dann ist PTI aktiv, andernfalls nicht.
In Linux 4.14.11 fehlt noch der oben erwähnte Patch des AMD-Entwicklers, der PTI auf AMD-CPUs standardmäßig deaktiviert. In Linux 4.14.11 ist PTI daher unnötigerweise auch auf AMD-CPUs aktiv. Man kann PTI dann entweder manuell anhand des Kernel-Parameters „pti=off“ deaktivieren oder ein paar Tage auf Linux 4.14.12 warten – darin wird der Patch des AMD-Entwicklers enthalten sein.
App-Benchmarks
In kurzfristig durchgeführten eigenen Benchmarks konnte ComputerBase auf einem Notebook mit Intel Core i7-4600U in spontan lauffähigen einfachen Benchmarks der
Phoronix Test Suite keine über die Messungenauigkeit hinausgehenden Leistungseinbußen feststellen (getestet wurden pts/blake2, pts/build-linux-kernel, pts/openssl, pts/phpbench, pts/pybench und pts/sqlite). Bei dem im Tweet in dieser News erwähnten Benchmark „time du -s -x /“ (also dem Aufsummieren der Größe aller Dateien auf dem Hauptdateisystem) konnten aber auch wir einen deutlichen Leistungseinbruch feststellen: Ohne PTI lieferte der Befehl in 0,64 Sekunden ein Ergebnis, mit PTI erst nach 0,82 Sekunden, das entspricht einer Leistungseinbuße von 28 %. Dieser „Benchmark“ ist aber als Worst-Case zu bezeichnen, weil er quasi nur daraus besteht, in einer Schleife für jede Datei den
„stat“-Syscall auszuführen.
Die weit verbreitete Datenbank PostgreSQL läuft
einem Benchmark zu Folge mit PTI rund 7 Prozent langsamer. Linus Torvalds bezeichnete diese Leistungseinbuße in einer Antwort als „
im Rahmen der Erwartungen“, aber natürlich stark abhängig vom konkreten Workload. Derweil gibt es weitere
PTI-Benchmarks auf Phoronix, denen zu Folge es bei synthetischen Dateisystem-Benchmarks auf NVMe-SSDs dramatische Einbrüche um Faktor 2 und mehr gibt, deutliche Unterschiede im unteren zweistelligen Prozentbereich bei
PostgreSQL- und
Redis-Datenbanken und keine messbaren Unterschiede bei Encoding-Benchmarks wie
FFmpeg und
x264 sowie der Kernel-Kompilierung.
Spiele-Benchmarks
Die Gaming-affinen Leser von ComputerBase wird freuen, dass es in den
Spiele-Benchmarks von Phoronix keine messbaren Leistungseinbußen gibt, sodass Gamer sich vermutlich entspannt zurücklehnen können – zumindest unter der Annahme, dass die Ergebnisse der Linux-Benchmarks auf Windows übertragbar sind, wovon man zunächst ausgehen sollte. So wie es aktuell aussieht könnten allenfalls die Ladezeiten durch PTI negativ beeinflusst werden.
Details zu der Sicherheitslücke sollen
am morgigen 4. Januar 2018 veröffentlicht werden.