Messages in this thread | | | Subject | Re: [MM] Make mm counters per cpu instead of atomic | From | "Zhang, Yanmin" <> | Date | Wed, 25 Nov 2009 09:23:01 +0800 |
| |
On Tue, 2009-11-24 at 09:17 -0600, Christoph Lameter wrote: > On Tue, 24 Nov 2009, Zhang, Yanmin wrote: > > > > True.... We need to find some alternative to per cpu data to scale mmap > > > sem then. > > I ran lots of benchmarks such like specjbb2005/hackbench/tbench/dbench/iozone > > /sysbench_oltp(mysql)/aim7 against percpu tree(based on 2.6.32-rc7) on a 4*8*2 logical > > cpu machine, and didn't find big result difference between with your patch and without > > your patch. > > This affects loads that heavily use mmap_sem. You wont find too many > issues in tests that do not run processes with a large thread count and > cause lots of faults or uses of get_user_pages(). The tests you list are > not of that nature. sysbench_oltp(mysql) is kind of such workload. Both sysbench and mysql are multi-threaded. 2 years ago, I investigated a scalability issue of such workload and found mysql causes frequent down_read(mm->mmap_sem). Nick changes it to down_read to fix it.
But this workload doesn't work well with more than 64 threads because mysql has some unreasonable big locks in userspace (implemented as a conditional spinlock in userspace).
Yanmin
| |