While Linux 5.15 has many new features and improvements, one of the patch series we have been eager to see land is the work introducing the new FUTEX2 system call. FUTEX2 can help improve the performance of newer Windows games running on Linux via Wine / Steam Play’s Proton by better matching the Windows kernel behavior, but while it didn’t land for Linux 5.15, at least a new version of the patches were posted.
AndrĂ© Almeida of Collabora has posted his third iteration of the refined / slimmed down FUTEX2 implementation that is just focused on supporting wait for multiple futexes. Originally FUTEX2 was also working on variable-sized futexes, NUMA-awareness, and other futex improvements while those extra features will come later with first trying to usher through the “futex_wait_multiple” behavior. This aims to help newer Windows games that rely on the “WaitForMultipleObjects” call for waiting on multiple locks at once.
With today’s “v3” patches, the FUTEX2 patches are now working with ARM Linux kernel builds. There is also a fix from the prior version of the patches to remove the compatibility entry point.
These updated FUTEX2 patches can be found on the kernel mailing list. Here’s to hoping this work will potentially be ready to land later this year with Linux 5.16…