• IT-Karriere:
  • Services:

Valve: Linux bekommt Windows-Thread-Synchronisation für Steam

Die Thread-Synchronisation funktioniert unter Windows anders als unter Linux. Für Wine und Proton in Steam nutzt Valve deshalb einen Hack, mit dem es einige Probleme gibt. Eine neue Kernel-Schnittstelle für Linux soll das ändern.

Artikel veröffentlicht am ,
Eine stilisierte Kuppelstange einer Dampflokomotive dient als Logo von Steam.
Eine stilisierte Kuppelstange einer Dampflokomotive dient als Logo von Steam. (Bild: Andrey Korchagin/CC-BY-SA 2.0)

Mit der aktuellen Version 4.11 von Proton führt Valve für seine Spiele-Plattform Steam mit Fsync eine neue experimentelle Technik für Linux ein. Mit dieser soll die Synchronisation von Threads auch unter Linux so ähnlich funktionieren, wie dies bei Windows umgesetzt wird. Das soll Geschwindigkeitsvorteile beim Ausführen von Windows-Spielen unter Linux bringen.

Inhalt:
  1. Valve: Linux bekommt Windows-Thread-Synchronisation für Steam
  2. Futex für mehrere Objekte

Bisher setzen die Beteiligten auf das sogenannte Esync, das bestehende Techniken des Linux-Kernels verwendet. Ziel ist es, einerseits die Thread-Synchronisation im Userspace umzusetzen und dies andererseits so zu gestalten, dass Threads gleichzeitig den Zustand mehrerer Objekte erfragen können. Letzteres ist unter Linux aber bisher nicht ohne weiteres möglich.

Die vom Wine-Sponsor Codeweavers dazu erdachte Technik Esync erstellt deshalb für jedes Synchronisationsobjekt einen Eventfd-File-Descriptor. Mit diesen kann der Kernel eine Userspace-Anwendung über bestimmte Ereignisse informieren. Das ermöglicht es, Information über die einzelnen Objekte zu erhalten. Das Problem an dieser Implementierung ist aber, dass die Anzahl der pro Prozess verfügbaren File Descriptor standardmäßig auf 4.096 beschränkt ist.

Zwar heben einige Linux-Distributionen dieses Limit deutlich an. Aber auch das reicht offenbar nicht aus. Laut Aussage der Entwickler gibt es Anwendungen, die bei der Nutzung von Esync mehrere Millionen File-Descriptor erzeugen, so dass die verfügbare Anzahl irgendwann schlicht aufgebraucht ist. Darüber verursacht Esync eine leicht erhöhte CPU-Auslastung.

Stellenmarkt
  1. DATAGROUP Köln GmbH, München
  2. BASF Digital Solutions GmbH, Ludwigshafen am Rhein

Die Umsetzung von Esync ist letztlich nur ein sehr ausgefallener Hack, der bestehende Begrenzungen der Kernel-Technik durch einen neuen Ansatz umgeht. Immerhin gibt es mit den sogenannten Futex (Fast Userspace Mutex) bereits seit langem eine Kernel-Technik zur Thread-Synchronisation, bei der die Mehrheit der Operationen im Userspace ausgeführt wird. Das ist wie erwähnt eines der Ziele der Technik von Valve. Die Entwickler wollen die Technik aber erweitern.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
Futex für mehrere Objekte 
  1. 1
  2. 2
  3.  


Anzeige
Mobile-Angebote
  1. (u. a. Apple iPhone 11 Pro Max 256GB 6,5 Zoll Super Retina XDR OLED für 929,98€)
  2. 159,99€ (mit Rabattcode "POWERFRIDAY20" - Bestpreis!)
  3. 699€ (mit Rabattcode "POWERFRIDAY20" - Bestpreis!)

0110101111010001 01. Aug 2019

Lol


Folgen Sie uns
       


Apple MacBook Air M1 - Test

Kann das Notebook mit völlig neuem und eigens entwickeltem System-on-a-Chip überzeugen? Wir sind überrascht, wie sehr das der Fall ist.

Apple MacBook Air M1 - Test Video aufrufen
    •  /