The FUTEX2 System Call Continues Working Its Way Towards Mainline In 2021
André Almeida of Collabora presented at last month's Linux.Conf.Au 2021 virtual summit on the FUTEX2 system call designed to succeed the current FUTEX implementation for better resource utilization and other functionality that will yield a more performant Windows-on-Linux gaming experience as well as being relevant to other workloads too.
Many of the new FUTEX2 features are currently wired up and there are the experimental Wine/Proton patches for use against the out-of-tree kernel code. One of the main additions with FUTEX2 is the ability for a single waiter to wait on multiple futexes, which more closely matches behavior of the Windows API. Some tests are showing FUTEX2 to be up to a few percent faster than the existing system call and for some cases more than 10% less time to complete. For FUTEX time spent while running games, it meant as much as 3% fewer kernel cycles.
Before FUTEX2 will be upstreamed there still is more testing needed as well as adding NUMA awareness and other remaining features. Learn more about FUTEX2 via the Linux.Conf.Au 2021 presentation embedded below.