Re: [mm][RFC][PATCH 0/11] mm accessor updates.

Andi Kleen
2009-12-17T08:40:55Z

On Wed, Dec 16, 2009 at 11:57:04PM +0100, Peter Zijlstra wrote:
> On Wed, 2009-12-16 at 19:31 +0900, KAMEZAWA Hiroyuki wrote:
>
> > The problem of range locking is more than mmap_sem, anyway. I don't think
> > it's possible easily.
>
> We already have a natural range lock in the form of the split pte lock.
>
> If we make the vma lookup speculative using RCU, we can use the pte lock

One problem is here that mmap_sem currently contains sleeps
and RCU doesn't work for blocking operations until a custom
quiescent period is defined.

> to verify we got the right vma, because munmap requires the pte lock to
> complete the unmap.

Ok.

>
> The fun bit is dealing with the fallout if we got it wrong, since we
> might then have instantiated page-tables not covered by a vma just to
> take the pte lock, it also requires we RCU free the page-tables iirc.

That makes sense.

>
> There are a few interesting cases like stack extention and hugetlbfs,
> but I think we could start by falling back to mmap_sem locked behaviour
> if the speculative thing fails.

You mean fall back to mmap_sem if anything sleeps? Maybe. Would need
to check how many such points are really there.

-Andi

--
ak@linux.intel.com -- Speaking for myself only.