Messages in this thread | | | Subject | Re: [mm][RFC][PATCH 0/11] mm accessor updates. | From | Peter Zijlstra <> | Date | Wed, 16 Dec 2009 23:57:04 +0100 |
| |
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 to verify we got the right vma, because munmap requires the pte lock to complete the unmap.
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.
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.
As to the proposed patches, I tend to agree that simply wrapping the mmap_sem semantics in different accessors is pointless, expressing the same semantics in different ways really doesn't help.
| |