Schneller und weniger oft zum Kernel

Ziel der Maßnahme gegen Meltdown ist es, den Adressraum des Kernels möglichst weitgehend von dem einer Userspace-Anwedung zu trennen. Unter Windows wird diese Technik als Kernel Virtual Adress (KVA) Shadow bezeichnet und unter Linux als Page Table Isolation (PTI).

Bisher war der Kernel standardmäßig in den Userspace gemappt, um einen Kontextwechsel zwischen Kernelspace und Userspace schneller durchführen zu können und den Translation Lookaside Buffer (TLB) hierbei nicht leeren zu müssen. Die CPU sorgt eigentlich für die dennoch notwendige strikte Trennung zwischen Kernel- und Userspace, was bei Meltdown allerdings geschickt umgangen wird.

Der Kernel wird mit den Patches nicht mehr so gemappt wie bisher, was dazu führt, dass der TLB bei einem Wechsel des laufenden Prozesses vom User- in den Kernelspace geleert wird und auf dem Rückweg ebenfalls. Dieses neue Verhalten führt damit allerdings zwangsläufig zu einem Leistungsverlust und ist genau deshalb auch bisher vermieden worden.

Systemaufruf und Kontextwechsel sind teuer

In einem völlig synthetischen Benchmark, auf den der Linux-Entwickler Dave Hansen in seinen PTI-Patches verweist, fällt die Rate zum wiederholten Aufrufen des Systemaufrufs lseek von 5,2 Millionen Aufrufen je Sekunde auf 2,2 Millionen Aufrufe bei Verwendung der PTI-Patches.

In ähnlichen Tests des Netflix-Angestellten Brendan Gregg zeigt sich darüber hinaus, dass sich die Leistungseinbußen mit steigender Anzahl der Systemaufrufe sogar noch vergrößern könnten. Bei 10 Millionen Systemaufrufen je Sekunde und CPU liegt der Leistungsverlust demnach gar bei 400 Prozent. Ähnliche Erkenntnisse liefert Gregg auch für Kontextwechsel: Je mehr diese vorkommen, desto größer ist der Leistungsverlust.

Greift ein Programm außerdem häufig auf einen vergleichsweise großen Bereich des Arbeitsspeichers zu (Working Set Size) und kommt es hierbei möglicherweise gar zum Auslagern des Speicherbereiches, sind die Leistungseinbußen entsprechend noch größer. Denn schlimmstenfalls versucht ein Programm dann auf nicht im Arbeitsspeichers befindliche Speicherbereiche zuzugreifen. Solch ein Seitenfehler verursacht eine Programmunterbrechung und das Neuladen des notwendigen Speicherbereichs.

Für Linux-Nutzer relativ leicht nachvollziehen lassen sich diese Ergebnisse mit kleinen Werkzeugen wie stress-ng, die es ebenfalls ermöglichen, das System mit dauerhaften Systemaufrufen oder auch Kontextwechseln - wie der Name sagt - zu stressen. Damit lassen sich ebenso absurd hohe Leistungseinbußen ermitteln. Aussagekräftig oder gar relevant ist das aber nicht.

So schreibt etwa Gregg, dass die typische Rate von Systemaufrufen der Anwendungen von Netflix bei etwa 10.000 pro Sekunde und CPU liege. Der damit verbundene Leistungsverlust ist also mehr oder weniger vernachlässigbar. Eine Reduktion und eventuell auch Überprüfung der Anzahl der Systemaufrufe ist aber eigentlich immer angebracht, auch völlig unabhängig von Meltdown. Und die möglichen und tatsächlich genutzten Optimierungen spielen hierbei noch gar kein Rolle.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Meltdown- und Spectre-Benchmarks: Weniger schlimm als erwartetVerbesserungen in Kernel und Anwendungen 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


n0x30n 04. Mai 2018

Ein Block aus 8 reservierten CVEs ist nicht das Gleiche wie 8 Sicherheitslücken. Abwarten...

DeathMD 04. Mai 2018

Kann mir nicht vorstellen, dass der Ryzen 2700x weniger IPC als deine CPU hat.

drvsouth 04. Mai 2018

Bei meinem Haswell i5-4200U merke ich eigentlich nichts beim täglichen Benutzen. Wenn...

Sybok 04. Mai 2018

Bei top ist das tatsächlich ganz genau so.



Aktuell auf der Startseite von Golem.de
Jack Kilby
Der Ingenieur, der den Mikrochip erfand

Am 6. Februar 1959 wurde Jack Kilbys Patent für den Mikrochip eingereicht. Und das war nicht das einzige Interessante im Leben des Nobelpreisträgers.
Ein Porträt von Elke Wittich

Jack Kilby: Der Ingenieur, der den Mikrochip erfand
Artikel
  1. Künstliche Intelligenz: So funktioniert ChatGPT
    Künstliche Intelligenz
    So funktioniert ChatGPT

    Das mächtige Sprachmodell ChatGPT erzeugt Texte, die sich kaum von denen menschlicher Autoren unterscheiden lassen. Wir erklären die Technologie hinter dem Hype.
    Ein Deep Dive von Helmut Linde

  2. VATM: Überbauen durch die Telekom verhindert Ausbau komplett
    VATM
    Überbauen durch die Telekom "verhindert Ausbau komplett"

    Durch gezielte Störmanöver versuche die Telekom den Glasfaserausbau der Konkurrenz zu verhindern, so der VATM. Oft stünden die Gemeinden dann wieder ohne Versorgung da.

  3. Programmiersprache: C++ - da ist noch Musik drin!
    Programmiersprache
    C++ - da ist noch Musik drin!

    Viele Entwickler sind dankbar für Impulse neuer Programmiersprachen, die Verbesserungen und Vereinfachungen in Aussicht stellen. Hat das uralte C++ mit seinen einzigartigen Vorteilen dagegen eine Chance?
    Ein Deep Dive von Adam Jaskowiec

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • RAM im Preisrutsch - neue Tiefstpreise! • Powercolor RX 7900 XTX 1.195€ • AMD Ryzen 7 5800X3D 329€ • Nur noch heute TV-Sale mit bis 77% Rabatt bei Otto • Lenovo Tab P11 Plus 249€ • MindStar: Intel Core i7 13700K 429€ • Logitech G915 Lightspeed 219,89€ • PCGH Cyber Week [Werbung]
    •  /