All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	linux-mm@kvack.org, akpm@linux-foundation.org
Cc: mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 16/16] debug_vm_pgtable/ppc64: Add a variant of pfn_pte/pmd
Date: Thu, 13 Aug 2020 11:00:56 +0530	[thread overview]
Message-ID: <fe7beb39-97e6-dd7c-59d4-e1a72bab3d71@arm.com> (raw)
In-Reply-To: <20200812063358.369514-16-aneesh.kumar@linux.ibm.com>


On 08/12/2020 12:03 PM, Aneesh Kumar K.V wrote:
> The tests do expect _PAGE_PTE bit set by different page table accessors.
> This is not true for the kernel. Within the kernel, _PAGE_PTE bits are
> usually set by set_pte_at(). To make the below tests work correctly add test
> specific pfn_pte/pmd helpers that set _PAGE_PTE bit.
> 
> pte_t pte = pfn_pte(pfn, prot);
> WARN_ON(!pte_devmap(pte_mkdevmap(pte)));
> WARN_ON(!pte_savedwrite(pte_mk_savedwrite(pte_clear_savedwrite(pte))));
> 
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> ---
>  mm/debug_vm_pgtable.c | 65 +++++++++++++++++++++++++++----------------
>  1 file changed, 41 insertions(+), 24 deletions(-)
> 
> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
> index eea62d5e503b..153c925b5273 100644
> --- a/mm/debug_vm_pgtable.c
> +++ b/mm/debug_vm_pgtable.c
> @@ -31,6 +31,23 @@
>  #include <asm/pgalloc.h>
>  #include <asm/tlbflush.h>
>  
> +#ifdef CONFIG_PPC_BOOK3S_64
> +static inline pte_t debug_vm_pfn_pte(unsigned long pfn, pgprot_t pgprot)
> +{
> +	pte_t pte = pfn_pte(pfn, pgprot);
> +	return __pte(pte_val(pte) | _PAGE_PTE);
> +
> +}
> +static inline pmd_t debug_vm_pfn_pmd(unsigned long pfn, pgprot_t pgprot)
> +{
> +	pmd_t pmd = pfn_pmd(pfn, pgprot);
> +	return __pmd(pmd_val(pmd) | _PAGE_PTE);
> +}
> +#else
> +#define debug_vm_pfn_pte(pfn, pgprot) pfn_pte(pfn, pgprot)
> +#define debug_vm_pfn_pmd(pfn, pgprot) pfn_pmd(pfn, pgprot)
> +#endif

Again, no platform specific constructs please. This defeats the whole purpose of
this test. If __PAGE_PTE is required for the helpers, then pfn_pmd/pte() could
be modified to accommodate that. We dont see similar issues on other platforms,
hence could you please explain why ppc64 is different here.


WARNING: multiple messages have this Message-ID (diff)
From: Anshuman Khandual <anshuman.khandual@arm.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>,
	linux-mm@kvack.org, akpm@linux-foundation.org
Cc: linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH 16/16] debug_vm_pgtable/ppc64: Add a variant of pfn_pte/pmd
Date: Thu, 13 Aug 2020 11:00:56 +0530	[thread overview]
Message-ID: <fe7beb39-97e6-dd7c-59d4-e1a72bab3d71@arm.com> (raw)
In-Reply-To: <20200812063358.369514-16-aneesh.kumar@linux.ibm.com>


On 08/12/2020 12:03 PM, Aneesh Kumar K.V wrote:
> The tests do expect _PAGE_PTE bit set by different page table accessors.
> This is not true for the kernel. Within the kernel, _PAGE_PTE bits are
> usually set by set_pte_at(). To make the below tests work correctly add test
> specific pfn_pte/pmd helpers that set _PAGE_PTE bit.
> 
> pte_t pte = pfn_pte(pfn, prot);
> WARN_ON(!pte_devmap(pte_mkdevmap(pte)));
> WARN_ON(!pte_savedwrite(pte_mk_savedwrite(pte_clear_savedwrite(pte))));
> 
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> ---
>  mm/debug_vm_pgtable.c | 65 +++++++++++++++++++++++++++----------------
>  1 file changed, 41 insertions(+), 24 deletions(-)
> 
> diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
> index eea62d5e503b..153c925b5273 100644
> --- a/mm/debug_vm_pgtable.c
> +++ b/mm/debug_vm_pgtable.c
> @@ -31,6 +31,23 @@
>  #include <asm/pgalloc.h>
>  #include <asm/tlbflush.h>
>  
> +#ifdef CONFIG_PPC_BOOK3S_64
> +static inline pte_t debug_vm_pfn_pte(unsigned long pfn, pgprot_t pgprot)
> +{
> +	pte_t pte = pfn_pte(pfn, pgprot);
> +	return __pte(pte_val(pte) | _PAGE_PTE);
> +
> +}
> +static inline pmd_t debug_vm_pfn_pmd(unsigned long pfn, pgprot_t pgprot)
> +{
> +	pmd_t pmd = pfn_pmd(pfn, pgprot);
> +	return __pmd(pmd_val(pmd) | _PAGE_PTE);
> +}
> +#else
> +#define debug_vm_pfn_pte(pfn, pgprot) pfn_pte(pfn, pgprot)
> +#define debug_vm_pfn_pmd(pfn, pgprot) pfn_pmd(pfn, pgprot)
> +#endif

Again, no platform specific constructs please. This defeats the whole purpose of
this test. If __PAGE_PTE is required for the helpers, then pfn_pmd/pte() could
be modified to accommodate that. We dont see similar issues on other platforms,
hence could you please explain why ppc64 is different here.

  reply	other threads:[~2020-08-13  5:31 UTC|newest]

Thread overview: 84+ 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 ` 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:33   ` 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:12     ` Anshuman Khandual
2020-08-12  8:25     ` Aneesh Kumar K.V
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  6:33   ` Aneesh Kumar K.V
2020-08-12  9:12   ` Anshuman Khandual
2020-08-12  9:12     ` Anshuman Khandual
2020-08-12  9:22     ` Aneesh Kumar K.V
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  6:33   ` Aneesh Kumar K.V
2020-08-12 10:30   ` Anshuman Khandual
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  6:33   ` Aneesh Kumar K.V
2020-08-12 11:24   ` Anshuman Khandual
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   ` 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  6:33   ` Aneesh Kumar K.V
2020-08-12 11:49   ` Anshuman Khandual
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  6:33   ` Aneesh Kumar K.V
2020-08-12 12:46   ` Anshuman Khandual
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  6:33   ` Aneesh Kumar K.V
2020-08-12 12:46   ` Anshuman Khandual
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-12  6:33   ` Aneesh Kumar K.V
2020-08-13  5:25   ` Anshuman Khandual
2020-08-13  5:25     ` Anshuman Khandual
2020-08-13  6:38     ` Aneesh Kumar K.V
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   ` 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   ` 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-12  6:33   ` Aneesh Kumar K.V
2020-08-13  5:27   ` Anshuman Khandual
2020-08-13  5:27     ` Anshuman Khandual
2020-08-13  8:45     ` Aneesh Kumar K.V
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  6:33   ` Aneesh Kumar K.V
2020-08-12 13:03   ` Anshuman Khandual
2020-08-12 13:03     ` Anshuman Khandual
2020-08-12 13:16     ` Aneesh Kumar K.V
2020-08-12 13:16       ` Aneesh Kumar K.V
2020-08-12 13:34       ` Anshuman Khandual
2020-08-12 13:34         ` Anshuman Khandual
2020-08-12 13:52         ` Aneesh Kumar K.V
2020-08-12 13:52           ` Aneesh Kumar K.V
2020-08-14  8:43           ` Anshuman Khandual
2020-08-14  8:43             ` Anshuman Khandual
2020-08-19  6:54             ` Aneesh Kumar K.V
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  6:33   ` Aneesh Kumar K.V
2020-08-12 13:06   ` Anshuman Khandual
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-12  6:33   ` Aneesh Kumar K.V
2020-08-13  5:30   ` Anshuman Khandual [this message]
2020-08-13  5:30     ` Anshuman Khandual
2020-08-13  6:37     ` Aneesh Kumar K.V
2020-08-13  6:37       ` Aneesh Kumar K.V
2020-08-14  8:29       ` Anshuman Khandual
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  7:46   ` Anshuman Khandual
2020-08-12  8:27   ` Aneesh Kumar K.V
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=fe7beb39-97e6-dd7c-59d4-e1a72bab3d71@arm.com \
    --to=anshuman.khandual@arm.com \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.ibm.com \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.