Commit e8edf0ad authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Linus Torvalds
Browse files

mm/debug_vm_pgtable/locks: move non page table modifying test together



This will help in adding proper locks in a later patch

Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lkml.kernel.org/r/20200902114222.181353-9-aneesh.kumar@linux.ibm.com


Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent c3824e18
Loading
Loading
Loading
Loading
+28 −23
Original line number Diff line number Diff line
@@ -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
@@ -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);
@@ -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);