Retpoline für bessere Geschwindigkeit
Der Vorschlag von Google-Mitarbeiter Paul Turner, um die Performance-Situation zu verbessern, nennt sich Retpoline (Return Trampoline). Diese Lösung erlaubt es, indirekte Branches von der spekulativen Ausführung auszunehmen. Diese Technologie erfordert Änderungen am Compiler, verbessert aber die Performance deutlich. Laut Woodhouse kann man so größtenteils auf IBRS verzichten und lediglich Retpoline und die erstgenannte Funktion IBPB verwenden.
Eine Notwendigkeit für das Aktivieren von IBRS sieht er zumindest für VM-Gäste, die die Funktion auf Windows und RHEL nutzen. Ansonsten erhofft sich Woodhouse eine Diskussion der Frage, ob überhaupt und zu welchem Zeitpunkt man beim Kontextwechsel die IBPB aktivieren wolle und in welchen Fällen die STIBP im Userspace nötig seien.
Alternativer Vorschlag ohne Microcode
Laut Woodhouse benötigen Skylake und die verwandten Prozessoren-Generationen weiterhin IBRS. Wer IBRS aufgrund von Performance-Erwägungen auf Skylake abschalte, solle dies bewusst tun. Er wäre glücklicher darüber, wenn es eine kohärente Analyse gäbe, die zeigen könne, dass IBRS auf Skylake nicht nötig sei, so der Entwickler.
Tatsächlich gibt es nun von Kernelentwickler Ingo Molnár einen alternativen Vorschlag, um den teuren IBRS-Einsatz und die Änderungen im Compiler zu umgehen. Er schlägt vor, CONFIG_FUNCTION_TRACER=y zu verwenden, um einen schnellen Tracking-Tracer zu implementieren, der Retpoline aktiviert, sobald ein Stack mehr als etwa 16 Einträge summiert.
Dieser Schritt könne den Overhead auf Skylake-CPUs reduzieren, nutze zugleich in aktuellen Distro-Kerneln vorhandene Möglichkeiten und erzeuge auf anderen CPU-Generationen als Skylake keinen Overhead. Seine Lösung erfordere zudem keine Microcode-Updates und der Stack Depth Tracer lasse sich auch auf anderen CPUs testen.
Laut Molnár besteht also eine Chance, auf die Microcode-Hacks zu verzichten und die Probleme über reguläre Kernel-Updates und mit weniger Performance-Einbuße zu beheben. Ob diese Lösung in der Praxis funktionieren könnte, ist aber noch offen. Sie wirft zumindest Fragen auf, und die Kernel-Entwickler müssten sie intensiv testen. Für welche der Lösungen sich die Community also langfristig entscheidet, ist derzeit noch offen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
IBRS und Retpoline: Linux-Entwickler diskutieren weiter über Spectre-Paches |
- 1
- 2
AMD ist nicht mal im Ansatz so wie Intel betroffen, auch wenn Intel gerne ihren Dreck...
Um die Gefahr durch gemeinsam genutzten Adressraum grundsätzlich zu beheben (wer wei...
Herr Gruß: Aufmerksamkeit auf "Kaiser" schürte den Verdacht auf Sicherheitslücke. Haben...
Nur stellt sich Intel hin und behauptet das Kind wäre schon immer im Brunnen und die...