mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
mm, hugetlb: convert hugetlbfs to use split pmd lock
Hugetlb supports multiple page sizes. We use split lock only for PMD level, but not for PUD. [[email protected]: coding-style fixes] Signed-off-by: Naoya Horiguchi <[email protected]> Signed-off-by: Kirill A. Shutemov <[email protected]> Tested-by: Alex Thorlton <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "Eric W . Biederman" <[email protected]> Cc: "Paul E . McKenney" <[email protected]> Cc: Al Viro <[email protected]> Cc: Andi Kleen <[email protected]> Cc: Andrea Arcangeli <[email protected]> Cc: Dave Hansen <[email protected]> Cc: Dave Jones <[email protected]> Cc: David Howells <[email protected]> Cc: Frederic Weisbecker <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Kees Cook <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Michael Kerrisk <[email protected]> Cc: Oleg Nesterov <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Rik van Riel <[email protected]> Cc: Robin Holt <[email protected]> Cc: Sedat Dilek <[email protected]> Cc: Srikar Dronamraju <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Hugh Dickins <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
c389a250ab
commit
cb900f4121
7 changed files with 105 additions and 54 deletions
|
|
@ -130,7 +130,7 @@ static int remove_migration_pte(struct page *new, struct vm_area_struct *vma,
|
|||
ptep = huge_pte_offset(mm, addr);
|
||||
if (!ptep)
|
||||
goto out;
|
||||
ptl = &mm->page_table_lock;
|
||||
ptl = huge_pte_lockptr(hstate_vma(vma), mm, ptep);
|
||||
} else {
|
||||
pmd = mm_find_pmd(mm, addr);
|
||||
if (!pmd)
|
||||
|
|
@ -249,9 +249,10 @@ void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd,
|
|||
__migration_entry_wait(mm, ptep, ptl);
|
||||
}
|
||||
|
||||
void migration_entry_wait_huge(struct mm_struct *mm, pte_t *pte)
|
||||
void migration_entry_wait_huge(struct vm_area_struct *vma,
|
||||
struct mm_struct *mm, pte_t *pte)
|
||||
{
|
||||
spinlock_t *ptl = &(mm)->page_table_lock;
|
||||
spinlock_t *ptl = huge_pte_lockptr(hstate_vma(vma), mm, pte);
|
||||
__migration_entry_wait(mm, pte, ptl);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue