Updated FUTEX2 Patches Posted For The Linux Kernel With A Focus On Helping Games
André Almeida of Collabora today posted the latest patches introducing the FUTEX2 system call though with these patches are still marked as "request for comments" (RFC) so don't expect them to be merged to mainline in short order -- plus the fact that it would already be too late for trying to get it into the now-open 5.12 merge window.
With the FUTEX2 system call and patched versions of Wine/Proton, there can be easily a several percent improvement over the existing behavior -- see more details within the recent The FUTEX2 System Call Continues Working Its Way Towards Mainline In 2021 presentation from Linux.Conf.Au 2021. The waiting on multiple futexes support of FUTEX2 is for better matching the Windows behavior while the new system call would also address allowing smaller sizes for the futex user-space integer and better NUMA awareness.
In addition to modifying Wine/Proton to make use of FUTEX2, Andre also has stressed the interface by modifying Glibc to also make use of the new system call. So far the testing and performance figures are looking good.
The newest patches for the FUTEX2 system call can be found for review and discussion on the kernel mailing list. We'll see where the discussion goes from there if the work gets buttoned up quickly where we could potentially see it appear in the 5.13 kernel this summer or if it will take a few more cycles until it's settled down and upstream developers in agreement for this low-level kernel improvement that will help not only gaming but other use-cases as well.