Futex für mehrere Objekte
Das Problem mit Futex ist aus Sicht der Entwickler, dass diese Technik es bisher nicht ermöglicht, auf mehrere dieser Objekte pro Thread zu warten. Gemeinsam mit Codeweavers und den Linux-Spezialisten von Collabora hat Valve die bestehende Technik erweitert. Unter Windows könnten laut den Entwicklern Programme eine beliebige Anzahl von Synchronisationsobjekten erzeugen und gleichzeitig auf bis zu 64 dieser warten.
Der nun für den Linux-Kernel vorgestellte Patch erstellt eine Liste mehrerer Futex-Objekte in einem Array. Hierbei ist die Anzahl von 64 aus Windows eine harte Grenze, die üblicherweise kaum erreicht wird. Typischerweise sind es höchstens drei Objekte, und die Entwickler haben bisher auch erst maximal 12 dieser in echten Anwendungen gesehen, wie sie in der Diskussion schreiben.
Derzeit ist die neue Technik noch ein eigenständiger Patch, der nach Meinung der Entwickler ausgiebig in mehreren Entwicklungszyklen getestet werden soll. Möglich ist aber auch, die Futex-Technik des Kernels komplett auf die neue Implementierung zu migrieren. Die bisher bestehende Implementierung nutzt dann nicht mehrere Objekte, sondern nur ein einziges. Das Verändern des bestehenden Codes ist aber sehr heikel, so dass dies nicht direkt geschehen soll.
Als Userspace-Implementierung stellt das Team zusätzlich zu seinem Code in Proton auch beispielhaften Code für die Glibc bereit, der die neue Kernel-Technik als Teil der Pthread-Bibliothek zur Verfügung stellt. Eigenen Angaben zufolge will Valve diese Neuerung in Steam selbst sowie auch in der Source-2-Engine verwenden, sobald die Technik in den Linux-Kernel aufgenommen wird.
Ob und wann dies geschieht, ist derzeit noch nicht absehbar. Grundsätzliche Kritik an der Idee scheint es bisher nicht zu geben. Die Kommentare zu den Patches beziehen sich vielmehr auf Details der Implementierung.
Interessierte Nutzer können die neue Kernel-Technik mit vorbereiten Kernel-Paketen für Arch Linux sowie für Ubuntu zusammen mit der aktuellen Version 4.11 von Valves Proton testen.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Valve: Linux bekommt Windows-Thread-Synchronisation für Steam |
- 1
- 2
Lol