Skip to content

Commit

Permalink
mm/debug_vm_pgtable/locks: move non page table modifying test together
Browse files Browse the repository at this point in the history
This will help in adding proper locks in a later patch

Signed-off-by: Aneesh Kumar K.V <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Cc: Anshuman Khandual <[email protected]>
Cc: Christophe Leroy <[email protected]>
Cc: Michael Ellerman <[email protected]>
Link: https://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
kvaneesh authored and torvalds committed Oct 16, 2020
1 parent c3824e1 commit e8edf0a
Showing 1 changed file with 28 additions and 23 deletions.
51 changes: 28 additions & 23 deletions mm/debug_vm_pgtable.c
Original file line number Diff line number Diff line change
Expand Up @@ -984,7 +984,7 @@ static int __init debug_vm_pgtable(void)
p4dp = p4d_alloc(mm, pgdp, vaddr);
pudp = pud_alloc(mm, p4dp, vaddr);
pmdp = pmd_alloc(mm, pudp, vaddr);
ptep = pte_alloc_map_lock(mm, pmdp, vaddr, &ptl);
ptep = pte_alloc_map(mm, pmdp, vaddr);

/*
* Save all the page table page addresses as the page table
Expand All @@ -1004,33 +1004,12 @@ static int __init debug_vm_pgtable(void)
p4d_basic_tests(p4d_aligned, prot);
pgd_basic_tests(pgd_aligned, prot);

pte_clear_tests(mm, ptep, vaddr);
pmd_clear_tests(mm, pmdp);
pud_clear_tests(mm, pudp);
p4d_clear_tests(mm, p4dp);
pgd_clear_tests(mm, pgdp);

pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
pmd_advanced_tests(mm, vma, pmdp, pmd_aligned, vaddr, prot);
pud_advanced_tests(mm, vma, pudp, pud_aligned, vaddr, prot);
hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);

pmd_leaf_tests(pmd_aligned, prot);
pud_leaf_tests(pud_aligned, prot);

pmd_huge_tests(pmdp, pmd_aligned, prot);
pud_huge_tests(pudp, pud_aligned, prot);

pte_savedwrite_tests(pte_aligned, protnone);
pmd_savedwrite_tests(pmd_aligned, protnone);

pte_unmap_unlock(ptep, ptl);

pmd_populate_tests(mm, pmdp, saved_ptep);
pud_populate_tests(mm, pudp, saved_pmdp);
p4d_populate_tests(mm, p4dp, saved_pudp);
pgd_populate_tests(mm, pgdp, saved_p4dp);

pte_special_tests(pte_aligned, prot);
pte_protnone_tests(pte_aligned, protnone);
pmd_protnone_tests(pmd_aligned, protnone);
Expand All @@ -1048,11 +1027,37 @@ static int __init debug_vm_pgtable(void)
pmd_swap_tests(pmd_aligned, prot);

swap_migration_tests();
hugetlb_basic_tests(pte_aligned, prot);

pmd_thp_tests(pmd_aligned, prot);
pud_thp_tests(pud_aligned, prot);

hugetlb_basic_tests(pte_aligned, prot);

pte_clear_tests(mm, ptep, vaddr);
pmd_clear_tests(mm, pmdp);
pud_clear_tests(mm, pudp);
p4d_clear_tests(mm, p4dp);
pgd_clear_tests(mm, pgdp);

ptl = pte_lockptr(mm, pmdp);
spin_lock(ptl);

pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
pmd_advanced_tests(mm, vma, pmdp, pmd_aligned, vaddr, prot);
pud_advanced_tests(mm, vma, pudp, pud_aligned, vaddr, prot);
hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);


pmd_huge_tests(pmdp, pmd_aligned, prot);
pud_huge_tests(pudp, pud_aligned, prot);

pte_unmap_unlock(ptep, ptl);

pmd_populate_tests(mm, pmdp, saved_ptep);
pud_populate_tests(mm, pudp, saved_pmdp);
p4d_populate_tests(mm, p4dp, saved_pudp);
pgd_populate_tests(mm, pgdp, saved_p4dp);

p4d_free(mm, saved_p4dp);
pud_free(mm, saved_pudp);
pmd_free(mm, saved_pmdp);
Expand Down

0 comments on commit e8edf0a

Please sign in to comment.