[PATCH 1/4] powerpc/64s: Add DEBUG_PAGEALLOC for radix

Christophe Leroy christophe.leroy at csgroup.eu
Mon Sep 19 16:17:04 AEST 2022



Le 19/09/2022 à 03:44, Nicholas Miehlbradt a écrit :
> [Vous ne recevez pas souvent de courriers de nicholas at linux.ibm.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> 
> There is support for DEBUG_PAGEALLOC on hash but not on radix.
> Add support on radix.
> 
> Signed-off-by: Nicholas Miehlbradt <nicholas at linux.ibm.com>
> ---
>   arch/powerpc/mm/book3s64/radix_pgtable.c | 16 +++++++++++++++-
>   1 file changed, 15 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
> index db2f3d193448..483c99bfbde5 100644
> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
> @@ -30,6 +30,7 @@
>   #include <asm/trace.h>
>   #include <asm/uaccess.h>
>   #include <asm/ultravisor.h>
> +#include <asm/set_memory.h>
> 
>   #include <trace/events/thp.h>
> 
> @@ -503,6 +504,9 @@ static unsigned long __init radix_memory_block_size(void)
>   {
>          unsigned long mem_block_size = MIN_MEMORY_BLOCK_SIZE;
> 
> +       if (debug_pagealloc_enabled())
> +               return PAGE_SIZE;
> +
>          /*
>           * OPAL firmware feature is set by now. Hence we are ok
>           * to test OPAL feature.
> @@ -519,6 +523,9 @@ static unsigned long __init radix_memory_block_size(void)
> 
>   static unsigned long __init radix_memory_block_size(void)
>   {
> +       if (debug_pagealloc_enabled())
> +               return PAGE_SIZE;
> +
>          return 1UL * 1024 * 1024 * 1024;

While at it, maybe you can replace the above by SZ_1G

>   }
> 
> @@ -899,7 +906,14 @@ void __meminit radix__vmemmap_remove_mapping(unsigned long start, unsigned long
>   #ifdef CONFIG_DEBUG_PAGEALLOC
>   void radix__kernel_map_pages(struct page *page, int numpages, int enable)
>   {
> -       pr_warn_once("DEBUG_PAGEALLOC not supported in radix mode\n");
> +       unsigned long addr;
> +
> +       addr = (unsigned long)page_address(page);
> +
> +       if (enable)
> +               set_memory_p(addr, numpages);
> +       else
> +               set_memory_np(addr, numpages);
>   }
>   #endif
> 
> --
> 2.34.1
> 


More information about the Linuxppc-dev mailing list