Re: Subject: [RFC MM] mmap_sem scaling: Use mutex and percpu counterinstead

From: Christoph Lameter
Date: Fri Nov 06 2009 - 12:56:20 EST

On Fri, 6 Nov 2009, Andi Kleen wrote:

> On Fri, Nov 06, 2009 at 12:08:54PM -0500, Christoph Lameter wrote:
> > On Fri, 6 Nov 2009, Andi Kleen wrote:
> >
> > > Yes but all the major calls still take mmap_sem, which is not ranged.
> >
> > But exactly that issue is addressed by this patch!
> Major calls = mmap, brk, etc.

Those are rare. More frequently are for faults, get_user_pages and
the like operations that are frequent.

brk depends on process wide settings and has to be
serialized using a processor wide locks.

mmap and other address space local modification may be able to avoid
taking mmap write lock by taking the read lock and then locking the
ptls in the page struct relevant to the address space being modified.

This is also enabled by this patchset.

> Only for page faults, not for anything that takes it for write.
> Anyways the better reader lock is a step in the right direction, but
> I have my doubts it's a good idea to make write really slow here.

The bigger the system the larger the problems with mmap. This is one key
scaling issue important for the VM. We can work on that. I have a patch
here that restricts the per cpu checks to only those cpus on which the
process has at some times run before.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at