[PATCH v2 10/13] mm/debug_vm_pgtable/locks: Take correct page table lock
Aneesh Kumar K.V
aneesh.kumar at linux.ibm.com
Fri Aug 21 18:08:08 AEST 2020
On 8/21/20 1:33 PM, Anshuman Khandual wrote:
>
>
> On 08/19/2020 06:31 PM, Aneesh Kumar K.V wrote:
>> Make sure we call pte accessors with correct lock held.
>>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
>> ---
>> mm/debug_vm_pgtable.c | 34 ++++++++++++++++++++--------------
>> 1 file changed, 20 insertions(+), 14 deletions(-)
>>
>> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
>> index 69fe3cd8126c..8f7a8ccb5a54 100644
>> --- a/mm/debug_vm_pgtable.c
>> +++ b/mm/debug_vm_pgtable.c
>> @@ -1024,33 +1024,39 @@ static int __init debug_vm_pgtable(void)
>> pmd_thp_tests(pmd_aligned, prot);
>> pud_thp_tests(pud_aligned, prot);
>>
>> + hugetlb_basic_tests(pte_aligned, prot);
>> +
>> /*
>> * Page table modifying tests
>> */
>> - 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);
>>
>> ptep = pte_alloc_map_lock(mm, pmdp, vaddr, &ptl);
>> + pte_clear_tests(mm, ptep, vaddr);
>> pte_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
>> - pmd_advanced_tests(mm, vma, pmdp, pmd_aligned, vaddr, prot, saved_ptep);
>> - pud_advanced_tests(mm, vma, pudp, pud_aligned, vaddr, prot);
>> - hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
>> -
>> + pte_unmap_unlock(ptep, ptl);
>>
>> + ptl = pmd_lock(mm, pmdp);
>> + pmd_clear_tests(mm, pmdp);
>> + pmd_advanced_tests(mm, vma, pmdp, pmd_aligned, vaddr, prot, saved_ptep);
>> pmd_huge_tests(pmdp, pmd_aligned, prot);
>> + pmd_populate_tests(mm, pmdp, saved_ptep);
>> + spin_unlock(ptl);
>> +
>> + ptl = pud_lock(mm, pudp);
>> + pud_clear_tests(mm, pudp);
>> + pud_advanced_tests(mm, vma, pudp, pud_aligned, vaddr, prot);
>> pud_huge_tests(pudp, pud_aligned, prot);
>> + pud_populate_tests(mm, pudp, saved_pmdp);
>> + spin_unlock(ptl);
>>
>> - pte_unmap_unlock(ptep, ptl);
>> + //hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
>
> Commenting out an existing test in the middle of another change ?
>
That is already fixed. That was me creating a git diff against a wrong
branch.
Thanks.
-aneesh
More information about the Linuxppc-dev
mailing list