FUTEX2 / Helping Steam Play

One of the kernel patch series that has seen ongoing work for more than one year now is around introducing the FUTEX2 system call to better match the behavior of Microsoft Windows' NT kernel in order to allow for more efficient Proton/Wine usage that powers Steam Play for enjoying Windows games on Linux. 

For all the great changes and new features building up in Linux 5.15, unfortunately, this looks to be another kernel that will lack FUTEX2. The latest revision of the FUTEX2 patches were posted this weekend and now being half-way through the merge window is certainly too late to see it review, additional testing, and submitted in time.

Over the past year FUTEX2 went through several rounds of review with waiting on multiple futexes to better match the behavior of Windows. Originally the FT2 patches were also working on variable-sized futexes and other improvements but a simpler form of the patches were sent out last month to speed up the review/mainlining process by for now just focusing on the wait for multiple futexes and to tackle the other features later.

Out this weekend is the "v2" patches of that simpler take on FT2. With the v2 patches there are code and comment improvements and a variety of other cleaning up of the code. This FT2 code continues to be tested with Steam Play's Proton where using FT2 can lead to more efficient CPU utilization for select newer games.

Given the timing this new system call will have to wait until at least Linux 5.16. Unfortunately that's cutting it close for finding in a mainline kernel ahead of the Steam Deck shipping, so presumably Valve will end up shipping FUTEX2 in a patched kernel at least initially for the Steam Deck but we'll see as the end of year approaches for improving the Windows gaming experience on Linux.

Linux is deployed on a wide variety of computing systems, such as embedded devices, mobile devices (including its use in the Android operating system), personal computers, servers, mainframes, and supercomputers.