Messages in this thread | | | Date | Thu, 17 Dec 2009 09:40:46 +0100 | From | Andi Kleen <> | Subject | Re: [mm][RFC][PATCH 0/11] mm accessor updates. |
| |
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.
| |