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 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>