No announcement yet.

FUTEX2 Begins Sorting Out NUMA Awareness

  • Filter
  • Time
  • Show
Clear All
new posts

  • FUTEX2 Begins Sorting Out NUMA Awareness

    Phoronix: FUTEX2 Begins Sorting Out NUMA Awareness

    Merged last year for Linux 5.16 was the FUTEX2 system call for improving the FUTEX interface on Linux and with the original motivation for those improvements to wait on multiple futexes so Wine/Proton can better match Microsoft Windows' behavior for a more optimal Linux gaming experience. Beyond the performance/efficiency benefit of FUTEX2, other improvements have also been talked about while we are now beginning to see action on one of them: NUMA awareness...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    Amazing Wine on Threadripper or multi-processor server performance improvement!


    • #3
      I'm not familiar with the nuts and bolts of futex2 or NUMA, but,

      Userspace needs to specify which node would like to use to store/query
      the futex table. [...] For non-NUMA apps, a call without FUTEX_NUMA flag would just use the
      first node as default.
      This sounds like it requires special handling for decent performance by userspace, which no one will bother with unless they are writing specifically for a NUMA machine. What about:

      1. Have a futex table on all nodes.

      2. 99/100 wakes, try the local node first and only try other nodes if there are no local waiters.

      I guess the problem is that you would still get lots of cross-node traffic for non-contended locks, which are the common case?