Message ID | 20210727061401.592616-4-gshan@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | mm/debug_vm_pgtable: Enhancements | expand |
On 7/27/21 11:43 AM, Gavin Shan wrote: > This uses struct pgtable_debug_args in the leaf and savewrite test > functions. > > Signed-off-by: Gavin Shan <gshan@redhat.com> > --- > mm/debug_vm_pgtable.c | 32 ++++++++++++++++---------------- > 1 file changed, 16 insertions(+), 16 deletions(-) > > diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c > index 8498aa180ebc..0fa98083f7d5 100644 > --- a/mm/debug_vm_pgtable.c > +++ b/mm/debug_vm_pgtable.c > @@ -161,9 +161,9 @@ static void __init pte_advanced_tests(struct mm_struct *mm, > WARN_ON(pte_young(pte)); > } > > -static void __init pte_savedwrite_tests(unsigned long pfn, pgprot_t prot) > +static void __init pte_savedwrite_tests(struct pgtable_debug_args *args) > { > - pte_t pte = pfn_pte(pfn, prot); > + pte_t pte = pfn_pte(args->fixed_pte_pfn, args->page_prot_none); > > if (!IS_ENABLED(CONFIG_NUMA_BALANCING)) > return; > @@ -262,7 +262,7 @@ static void __init pmd_advanced_tests(struct mm_struct *mm, > pgtable = pgtable_trans_huge_withdraw(mm, pmdp); > } > > -static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) > +static void __init pmd_leaf_tests(struct pgtable_debug_args *args) > { > pmd_t pmd; > > @@ -270,7 +270,7 @@ static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) > return; > > pr_debug("Validating PMD leaf\n"); > - pmd = pfn_pmd(pfn, prot); > + pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot); > > /* > * PMD based THP is a leaf entry. > @@ -279,7 +279,7 @@ static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) > WARN_ON(!pmd_leaf(pmd)); > } > > -static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) > +static void __init pmd_savedwrite_tests(struct pgtable_debug_args *args) > { > pmd_t pmd; > > @@ -290,7 +290,7 @@ static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) > return; > > pr_debug("Validating PMD saved write\n"); > - pmd = pfn_pmd(pfn, prot); > + pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot_none); > WARN_ON(!pmd_savedwrite(pmd_mk_savedwrite(pmd_clear_savedwrite(pmd)))); > WARN_ON(pmd_savedwrite(pmd_clear_savedwrite(pmd_mk_savedwrite(pmd)))); > } > @@ -388,7 +388,7 @@ static void __init pud_advanced_tests(struct mm_struct *mm, > pudp_huge_get_and_clear(mm, vaddr, pudp); > } > > -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) > +static void __init pud_leaf_tests(struct pgtable_debug_args *args) > { > pud_t pud; > > @@ -396,7 +396,7 @@ static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) > return; > > pr_debug("Validating PUD leaf\n"); > - pud = pfn_pud(pfn, prot); > + pud = pfn_pud(args->fixed_pud_pfn, args->page_prot); > /* > * PUD based THP is a leaf entry. > */ > @@ -411,7 +411,7 @@ static void __init pud_advanced_tests(struct mm_struct *mm, > pgprot_t prot) > { > } > -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) { } > +static void __init pud_leaf_tests(struct pgtable_debug_args *args) { } > #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ > #else /* !CONFIG_TRANSPARENT_HUGEPAGE */ > static void __init pmd_basic_tests(struct pgtable_debug_args *args, int idx) { } > @@ -428,9 +428,9 @@ static void __init pud_advanced_tests(struct mm_struct *mm, > pgprot_t prot) > { > } > -static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) { } > -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) { } > -static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) { } > +static void __init pmd_leaf_tests(struct pgtable_debug_args *args) { } > +static void __init pud_leaf_tests(struct pgtable_debug_args *args) { } > +static void __init pmd_savedwrite_tests(struct pgtable_debug_args *args) { } > #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ > > #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP > @@ -1331,11 +1331,11 @@ static int __init debug_vm_pgtable(void) > p4d_basic_tests(&args); > pgd_basic_tests(&args); > > - pmd_leaf_tests(pmd_aligned, prot); > - pud_leaf_tests(pud_aligned, prot); > + pmd_leaf_tests(&args); > + pud_leaf_tests(&args); > > - pte_savedwrite_tests(pte_aligned, protnone); > - pmd_savedwrite_tests(pmd_aligned, protnone); > + pte_savedwrite_tests(&args); > + pmd_savedwrite_tests(&args); > > pte_special_tests(pte_aligned, prot); > pte_protnone_tests(pte_aligned, protnone); > Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c index 8498aa180ebc..0fa98083f7d5 100644 --- a/mm/debug_vm_pgtable.c +++ b/mm/debug_vm_pgtable.c @@ -161,9 +161,9 @@ static void __init pte_advanced_tests(struct mm_struct *mm, WARN_ON(pte_young(pte)); } -static void __init pte_savedwrite_tests(unsigned long pfn, pgprot_t prot) +static void __init pte_savedwrite_tests(struct pgtable_debug_args *args) { - pte_t pte = pfn_pte(pfn, prot); + pte_t pte = pfn_pte(args->fixed_pte_pfn, args->page_prot_none); if (!IS_ENABLED(CONFIG_NUMA_BALANCING)) return; @@ -262,7 +262,7 @@ static void __init pmd_advanced_tests(struct mm_struct *mm, pgtable = pgtable_trans_huge_withdraw(mm, pmdp); } -static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) +static void __init pmd_leaf_tests(struct pgtable_debug_args *args) { pmd_t pmd; @@ -270,7 +270,7 @@ static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) return; pr_debug("Validating PMD leaf\n"); - pmd = pfn_pmd(pfn, prot); + pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot); /* * PMD based THP is a leaf entry. @@ -279,7 +279,7 @@ static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) WARN_ON(!pmd_leaf(pmd)); } -static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) +static void __init pmd_savedwrite_tests(struct pgtable_debug_args *args) { pmd_t pmd; @@ -290,7 +290,7 @@ static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) return; pr_debug("Validating PMD saved write\n"); - pmd = pfn_pmd(pfn, prot); + pmd = pfn_pmd(args->fixed_pmd_pfn, args->page_prot_none); WARN_ON(!pmd_savedwrite(pmd_mk_savedwrite(pmd_clear_savedwrite(pmd)))); WARN_ON(pmd_savedwrite(pmd_clear_savedwrite(pmd_mk_savedwrite(pmd)))); } @@ -388,7 +388,7 @@ static void __init pud_advanced_tests(struct mm_struct *mm, pudp_huge_get_and_clear(mm, vaddr, pudp); } -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) +static void __init pud_leaf_tests(struct pgtable_debug_args *args) { pud_t pud; @@ -396,7 +396,7 @@ static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) return; pr_debug("Validating PUD leaf\n"); - pud = pfn_pud(pfn, prot); + pud = pfn_pud(args->fixed_pud_pfn, args->page_prot); /* * PUD based THP is a leaf entry. */ @@ -411,7 +411,7 @@ static void __init pud_advanced_tests(struct mm_struct *mm, pgprot_t prot) { } -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) { } +static void __init pud_leaf_tests(struct pgtable_debug_args *args) { } #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ #else /* !CONFIG_TRANSPARENT_HUGEPAGE */ static void __init pmd_basic_tests(struct pgtable_debug_args *args, int idx) { } @@ -428,9 +428,9 @@ static void __init pud_advanced_tests(struct mm_struct *mm, pgprot_t prot) { } -static void __init pmd_leaf_tests(unsigned long pfn, pgprot_t prot) { } -static void __init pud_leaf_tests(unsigned long pfn, pgprot_t prot) { } -static void __init pmd_savedwrite_tests(unsigned long pfn, pgprot_t prot) { } +static void __init pmd_leaf_tests(struct pgtable_debug_args *args) { } +static void __init pud_leaf_tests(struct pgtable_debug_args *args) { } +static void __init pmd_savedwrite_tests(struct pgtable_debug_args *args) { } #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP @@ -1331,11 +1331,11 @@ static int __init debug_vm_pgtable(void) p4d_basic_tests(&args); pgd_basic_tests(&args); - pmd_leaf_tests(pmd_aligned, prot); - pud_leaf_tests(pud_aligned, prot); + pmd_leaf_tests(&args); + pud_leaf_tests(&args); - pte_savedwrite_tests(pte_aligned, protnone); - pmd_savedwrite_tests(pmd_aligned, protnone); + pte_savedwrite_tests(&args); + pmd_savedwrite_tests(&args); pte_special_tests(pte_aligned, prot); pte_protnone_tests(pte_aligned, protnone);
This uses struct pgtable_debug_args in the leaf and savewrite test functions. Signed-off-by: Gavin Shan <gshan@redhat.com> --- mm/debug_vm_pgtable.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-)