![]() | |||||||||||
Messages in this thread |
Arjan van de Ven wrote: >>Arjan, just to get an idea of your workload: obviously it is a mix of >>read and write on the mmap_sem (read only will not really benefit from >>reducing lock width because cacheline transfers will still be there).> > > yeah it's threads that each allocate, use and then free memory with > mmap()> > >>Is it coming from brk() from the allocator? Someone told me a while ago >>that glibc doesn't have a decent amount of hysteresis in its allocator >>and tends to enter the kernel quite a lot... that might be something >>to look into.> > > we already are working on that angle; I just posted the kernel stuff as > a side effect basically > OK. [aside] Actually I have a scalability improvement for rwsems, that moves the actual task wakeups out from underneath the rwsem spinlock in the up() paths. This was useful exactly on a mixed read+write workload on mmap_sem. The difference was quite large for the "generic rwsem" algorithm because it uses the spinlock in fastpaths a lot more than the xadd algorithm. I think x86-64 uses the former, which is what I presume you're testing with? Obviously this is a slightly different issue from the one you're trying to address here, but I'll dig out patch when I get some time and you can see if it helps. -- SUSE Labs, Novell Inc. Send instant messages to your online friends http://au.messenger.yahoo.com - 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/ | ||||||||||
| Last update: 2006-02-24 10:29 [from the cache] ©2003-2008 | |||||||||||