Messages in this thread | | | Subject | Re: [PATCH 0/3] FUTEX : new PRIVATE futexes, SMP and NUMA improvements | From | Peter Zijlstra <> | Date | Fri, 16 Mar 2007 11:10:13 +0100 |
| |
On Fri, 2007-03-16 at 10:30 +0100, Eric Dumazet wrote: > 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)
Yeah, I was just hoping a few cache entries would be enough to get the worst of them. A benchmark will have to tell I guess.
> About your guess_futex_shared() thing, I miss the vma_anon() definition.
http://programming.kicks-ass.net/kernel-patches/futex-vma-cache/vma_cache.patch
> But if it has to walk the vmas (and take mmap_sem), you already loose the > PRIVATE benefit.
It doesn't take mmap_sem, I am aware of the problems.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |