thp: split_huge_page anon_vma ordering dependency
This documents how split_huge_page is safe vs new vma inserctions into the anon_vma that may have already released the anon_vma->lock but not established pmds yet when split_huge_page starts. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> Acked-by: Mel Gorman <mel@csn.ul.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
8a07651ee8
commit
05759d380a
@@ -177,6 +177,10 @@ static void anon_vma_chain_link(struct vm_area_struct *vma,
|
||||
list_add(&avc->same_vma, &vma->anon_vma_chain);
|
||||
|
||||
anon_vma_lock(anon_vma);
|
||||
/*
|
||||
* It's critical to add new vmas to the tail of the anon_vma,
|
||||
* see comment in huge_memory.c:__split_huge_page().
|
||||
*/
|
||||
list_add_tail(&avc->same_anon_vma, &anon_vma->head);
|
||||
anon_vma_unlock(anon_vma);
|
||||
}
|
||||
|
Reference in New Issue
Block a user