Re: [PATCH 0/3] FUTEX : new PRIVATE futexes, SMP and NUMA improvements

Eric Dumazet
2007-03-16T09:30:21Z

On Friday 16 March 2007 09:05, Peter Zijlstra wrote:
> On Thu, 2007-03-15 at 20:10 +0100, Eric Dumazet wrote:
> > Hi
> >
> > I'm pleased to present these patches which improve linux futex
> > performance and scalability, on both UP, SMP and NUMA configs.
> >
> > I had this idea last year but I was not understood, probably because I
> > gave not enough explanations. Sorry if this mail is really long...
>
> I started playing with it after your last reference to it, I have some
> code here (against -rt):
> http://programming.kicks-ass.net/kernel-patches/futex-vma-cache/
>
> Which I will post once I have the found what keeps pthread_join() from
> completing :-(
>
> It basically adds a per task vma lookup cache which can also activate
> the private logic without explicit use of the new interface.

Hi Peter

I dont think yet another cache will help in the general case.
A typical program uses many vmas at once...

glibc has internal futexes, on a different vma than futexes declared in your
program. Each shared library is going to have its own vma for its data (and
futexes)

(244 vmas on one kmail program for example)

About your guess_futex_shared() thing, I miss the vma_anon() definition.
But if it has to walk the vmas (and take mmap_sem), you already loose the
PRIVATE benefit.