Re: [RFC] NUMA futex hashing

Andi Kleen
2006-08-08T09:58:12Z

Ravikiran G Thirumalai <kiran@scalex86.org> writes:

> Current futex hash scheme is not the best for NUMA. The futex hash table is
> an array of struct futex_hash_bucket, which is just a spinlock and a
> list_head -- this means multiple spinlocks on the same cacheline and on NUMA
> machines, on the same internode cacheline. If futexes of two unrelated
> threads running on two different nodes happen to hash onto adjacent hash
> buckets, or buckets on the same internode cacheline, then we have the
> internode cacheline bouncing between nodes.

When I did some testing with a (arguably far too lock intensive) benchmark
on a bigger box I got most bouncing cycles not in the futex locks itself,
but in the down_read on the mm semaphore.

I guess that is not addressed?

-Andi