Messages in this thread | | | Date | Thu, 06 May 2010 09:40:56 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 1/2] mm,migration: Prevent rmap_walk_[anon|ksm] seeing the wrong VMA information |
| |
On 05/05/2010 01:34 PM, Linus Torvalds wrote:
> - you always lock the _deepest_ anon_vma you can find.
The emphasis should be on "always" :)
> That means just a single lock. And the "deepest" anon_vma is well-defined > for all anon_vma's, because each same_anon_vma chain is always rooted in > the original anon_vma that caused it.
It should work, but only if we always take the deepest anon_vma lock.
Not just in the migration code, but also in mmap, munmap, mprotect (for split_vma), expand_stack, etc...
Otherwise we will still not provide exclusion of migrate vs. those events.
I'm guessing that means changing both anon_vma_lock and page_lock_anon_vma to always take the deepest anon_vma lock - not introducing a new function that is only called by the migration code.
-- All rights reversed
| |