[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