linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Anshuman Khandual <anshuman.khandual@arm.com>,
	linux-mm@kvack.org, akpm@linux-foundation.org
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 14/16] debug_vm_pgtable/hugetlb: Disable hugetlb test on ppc64
Date: Wed, 12 Aug 2020 18:46:35 +0530	[thread overview]
Message-ID: <efc8f8c8-c16d-0826-9401-a45005ecaf62@linux.ibm.com> (raw)
In-Reply-To: <d067c278-6391-72f1-75c2-ccbd52909233@arm.com>

On 8/12/20 6:33 PM, Anshuman Khandual wrote:
> 
> 
> On 08/12/2020 12:03 PM, Aneesh Kumar K.V wrote:
>> The seems to be missing quite a lot of details w.r.t allocating
>> the correct pgtable_t page (huge_pte_alloc()), holding the right
>> lock (huge_pte_lock()) etc. The vma used is also not a hugetlb VMA.
>>
>> ppc64 do have runtime checks within CONFIG_DEBUG_VM for most of these.
>> Hence disable the test on ppc64.
> 
> This test is free from any platform specific #ifdefs which should
> never be broken. If hugetlb_advanced_tests() does not work or is
> not detailed enough for ppc64, then it would be great if you could
> suggest some improvements so that it works for all enabled platforms.
> 
>

As mentioned the test is broken. For hugetlb, the pgtable_t pages should 
be allocated by huge_pte_alloc(). We need to hold huget_pte_lock() 
before  updating huge tlb pte. That takes hugepage size, which is mostly 
derived out of vma. Hence vma need to be a hugetlb vma. Some of the 
functions also depend on hstate. Also we should use set_huge_pte_at() 
when setting up hugetlb pte entries. I was tempted to remove that test 
completely marking it broken. But avoided that by marking it broken on 
only PPC64.



>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
>> ---
>>   mm/debug_vm_pgtable.c | 6 +++++-
>>   1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
>> index 529892b9be2f..3e112d0ba1b2 100644
>> --- a/mm/debug_vm_pgtable.c
>> +++ b/mm/debug_vm_pgtable.c
>> @@ -800,6 +800,7 @@ static void __init hugetlb_basic_tests(unsigned long pfn, pgprot_t prot)
>>   #endif /* CONFIG_ARCH_WANT_GENERAL_HUGETLB */
>>   }
>>   
>> +#ifndef CONFIG_PPC_BOOK3S_64
>>   static void __init hugetlb_advanced_tests(struct mm_struct *mm,
>>   					  struct vm_area_struct *vma,
>>   					  pte_t *ptep, unsigned long pfn,
>> @@ -842,6 +843,7 @@ static void __init hugetlb_advanced_tests(struct mm_struct *mm,
>>   	pte = huge_ptep_get(ptep);
>>   	WARN_ON(!(huge_pte_write(pte) && huge_pte_dirty(pte)));
>>   }
>> +#endif
>>   #else  /* !CONFIG_HUGETLB_PAGE */
>>   static void __init hugetlb_basic_tests(unsigned long pfn, pgprot_t prot) { }
>>   static void __init hugetlb_advanced_tests(struct mm_struct *mm,
>> @@ -1053,7 +1055,9 @@ static int __init debug_vm_pgtable(void)
>>   	pud_populate_tests(mm, pudp, saved_pmdp);
>>   	spin_unlock(ptl);
>>   
>> -	//hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
>> +#ifndef CONFIG_PPC_BOOK3S_64
>> +	hugetlb_advanced_tests(mm, vma, ptep, pte_aligned, vaddr, prot);
>> +#endif
>>   
>>   	spin_lock(&mm->page_table_lock);
>>   	p4d_clear_tests(mm, p4dp);
>>


  reply	other threads:[~2020-08-12 13:34 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-12  6:33 [PATCH 01/16] powerpc/mm: Add DEBUG_VM WARN for pmd_clear Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 02/16] debug_vm_pgtable/ppc64: Avoid setting top bits in radom value Aneesh Kumar K.V
2020-08-12  6:40   ` Christophe Leroy
2020-08-12  6:43     ` Aneesh Kumar K.V
2020-08-12  8:12   ` Anshuman Khandual
2020-08-12  8:25     ` Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 03/16] debug_vm_pgtable/set_pte: Don't use set_pte_at to update an existing pte entry Aneesh Kumar K.V
2020-08-12  9:12   ` Anshuman Khandual
2020-08-12  9:22     ` Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 04/16] debug_vm_pgtables/hugevmap: Use the arch helper to identify huge vmap support Aneesh Kumar K.V
2020-08-12 10:30   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 05/16] debug_vm_pgtable/savedwrite: Enable savedwrite test with CONFIG_NUMA_BALANCING Aneesh Kumar K.V
2020-08-12 11:24   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 06/16] debug_vm_pgtable/THP: Mark the pte entry huge before using set_pmd_at Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 07/16] debug_vm_pgtable/THP: Mark the pte entry huge before using set_pud_at Aneesh Kumar K.V
2020-08-12 11:49   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 08/16] debug_vm_pgtable/set_pmd: Don't use set_pmd_at to update an existing pmd entry Aneesh Kumar K.V
2020-08-12 12:46   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 09/16] debug_vm_pgtable/set_pud: Don't use set_pud_at to update an existing pud entry Aneesh Kumar K.V
2020-08-12 12:46   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 10/16] debug_vm_pgtable/thp: Use page table depost/withdraw with THP Aneesh Kumar K.V
2020-08-13  5:25   ` Anshuman Khandual
2020-08-13  6:38     ` Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 11/16] debug_vm_pgtable/locks: Move non page table modifying test together Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 12/16] debug_vm_pgtable/locks: Take correct page table lock Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 13/16] debug_vm_pgtable/pmd_clear: Don't use pmd/pud_clear on pte entries Aneesh Kumar K.V
2020-08-13  5:27   ` Anshuman Khandual
2020-08-13  8:45     ` Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 14/16] debug_vm_pgtable/hugetlb: Disable hugetlb test on ppc64 Aneesh Kumar K.V
2020-08-12 13:03   ` Anshuman Khandual
2020-08-12 13:16     ` Aneesh Kumar K.V [this message]
2020-08-12 13:34       ` Anshuman Khandual
2020-08-12 13:52         ` Aneesh Kumar K.V
2020-08-14  8:43           ` Anshuman Khandual
2020-08-19  6:54             ` Aneesh Kumar K.V
2020-08-12  6:33 ` [PATCH 15/16] debug_vm_pgtable/savedwrite: Use savedwrite test with protnone ptes Aneesh Kumar K.V
2020-08-12 13:06   ` Anshuman Khandual
2020-08-12  6:33 ` [PATCH 16/16] debug_vm_pgtable/ppc64: Add a variant of pfn_pte/pmd Aneesh Kumar K.V
2020-08-13  5:30   ` Anshuman Khandual
2020-08-13  6:37     ` Aneesh Kumar K.V
2020-08-14  8:29       ` Anshuman Khandual
2020-08-12  7:46 ` [PATCH 01/16] powerpc/mm: Add DEBUG_VM WARN for pmd_clear Anshuman Khandual
2020-08-12  8:27   ` Aneesh Kumar K.V

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=efc8f8c8-c16d-0826-9401-a45005ecaf62@linux.ibm.com \
    --to=aneesh.kumar@linux.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=anshuman.khandual@arm.com \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).