The standard futex mechanism in the Linux kernel uses a global hash to store transient state. Collisions on that hash can lead to performance degradation and on real-time enabled kernels to unbound priority inversions.
To guarantee futexes without collisions on the global kernel hash, we provide a mechanism to attach to a futex. This creates futex private state which avoids hash collisions and on NUMA systems also cross node memory accesses. The full explanation of the mechanism is in the changelog of patch 4/7 'futex: Add support for attached futexes'. The last two patches in the series contain a first update to the futex man page and initial glibc support. For your conveniance the kernel part is available at: git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.futex Thanks, tglx