From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
Cc: Nicholas Piggin <npiggin@gmail.com>,
Hari Bathini <hbathini@linux.ibm.com>,
Madhavan Srinivasan <maddy@linux.ibm.com>,
"Aneesh Kumar K . V" <aneesh.kumar@kernel.org>,
Michael Ellerman <mpe@ellerman.id.au>,
Donet Tom <donettom@linux.vnet.ibm.com>,
Pavithra Prakash <pavrampu@linux.vnet.ibm.com>
Subject: Re: [RFC v1 09/10] book3s64/radix: Refactoring common kfence related functions
Date: Thu, 05 Sep 2024 00:04:44 +0530 [thread overview]
Message-ID: <87a5gn2rp7.fsf@gmail.com> (raw)
In-Reply-To: <f37526c7-a608-426c-b23b-2681139868db@csgroup.eu>
Christophe Leroy <christophe.leroy@csgroup.eu> writes:
> Le 31/07/2024 à 09:56, Ritesh Harjani (IBM) a écrit :
>> [Vous ne recevez pas souvent de courriers de ritesh.list@gmail.com. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
>>
>> Both radix and hash on book3s requires to detect if kfence
>> early init is enabled or not. Hash needs to disable kfence
>> if early init is not enabled because with kfence the linear map is
>> mapped using PAGE_SIZE rather than 16M mapping.
>> We don't support multiple page sizes for slb entry used for kernel
>> linear map in book3s64.
>>
>> This patch refactors out the common functions required to detect kfence
>> early init is enabled or not.
>>
>> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
>> ---
>> arch/powerpc/include/asm/kfence.h | 2 ++
>> arch/powerpc/mm/book3s64/radix_pgtable.c | 12 ------------
>> arch/powerpc/mm/init-common.c | 12 ++++++++++++
>> 3 files changed, 14 insertions(+), 12 deletions(-)
>>
>> diff --git a/arch/powerpc/include/asm/kfence.h b/arch/powerpc/include/asm/kfence.h
>> index fab124ada1c7..5975688d8de1 100644
>> --- a/arch/powerpc/include/asm/kfence.h
>> +++ b/arch/powerpc/include/asm/kfence.h
>> @@ -15,6 +15,8 @@
>> #define ARCH_FUNC_PREFIX "."
>> #endif
>>
>> +extern bool kfence_early_init;
>> +
>> #ifdef CONFIG_KFENCE
>> extern bool kfence_disabled;
>>
>> diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
>> index b0d927009af8..311e2112d782 100644
>> --- a/arch/powerpc/mm/book3s64/radix_pgtable.c
>> +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
>> @@ -363,18 +363,6 @@ static int __meminit create_physical_mapping(unsigned long start,
>> }
>>
>> #ifdef CONFIG_KFENCE
>> -static bool __ro_after_init kfence_early_init = !!CONFIG_KFENCE_SAMPLE_INTERVAL;
>> -
>> -static int __init parse_kfence_early_init(char *arg)
>> -{
>> - int val;
>> -
>> - if (get_option(&arg, &val))
>> - kfence_early_init = !!val;
>> - return 0;
>> -}
>> -early_param("kfence.sample_interval", parse_kfence_early_init);
>> -
>> static inline phys_addr_t alloc_kfence_pool(void)
>> {
>> phys_addr_t kfence_pool;
>> diff --git a/arch/powerpc/mm/init-common.c b/arch/powerpc/mm/init-common.c
>> index 21131b96d209..259821a4db62 100644
>> --- a/arch/powerpc/mm/init-common.c
>> +++ b/arch/powerpc/mm/init-common.c
>> @@ -33,6 +33,18 @@ bool disable_kuep = !IS_ENABLED(CONFIG_PPC_KUEP);
>> bool disable_kuap = !IS_ENABLED(CONFIG_PPC_KUAP);
>> #ifdef CONFIG_KFENCE
>> bool __ro_after_init kfence_disabled;
>> +bool __ro_after_init kfence_early_init = !!CONFIG_KFENCE_SAMPLE_INTERVAL;
>> +static int __init parse_kfence_early_init(char *arg)
>
> If I understand correctly, previously it was only for radix, now it is
> for every platform including PPC32 ?
>
Ok. I see what you mean. Let me see how can I limit this cmdline parsing
of kfence and/or special case kfence handling to book3s64 only.
>> +{
>> + int val;
>> +
>> + if (get_option(&arg, &val))
>> + kfence_early_init = !!val;
>> + return 0;
>> +}
>> +early_param("kfence.sample_interval", parse_kfence_early_init);
>> +#else
>> +bool __ro_after_init kfence_early_init;
>
> I don't understand, why do you need that in the #else case ?
>
Yes, I don't like it either. Let me clean this up.
this was required in htab_init_page_sizes().
Thanks for pointing out.
-ritesh
next prev parent reply other threads:[~2024-09-04 18:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-31 7:56 [RFC v1 00/10] book3s64/hash: Improve kfence support Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 01/10] book3s64/hash: Remove kfence support temporarily Ritesh Harjani (IBM)
2024-08-14 17:07 ` Christophe Leroy
2024-09-04 18:27 ` Ritesh Harjani
2024-07-31 7:56 ` [RFC v1 02/10] book3s64/hash: Refactor kernel linear map related calls Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 03/10] book3s64/hash: Add hash_debug_pagealloc_add_slot() function Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 04/10] book3s64/hash: Add hash_debug_pagealloc_alloc_slots() function Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 05/10] book3s64/hash: Refactor hash__kernel_map_pages() function Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 06/10] book3s64/hash: Make kernel_map_linear_page() generic Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 07/10] book3s64/hash: Disable debug_pagealloc if it requires more memory Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 08/10] book3s64/hash: Add kfence functionality Ritesh Harjani (IBM)
2024-07-31 7:56 ` [RFC v1 09/10] book3s64/radix: Refactoring common kfence related functions Ritesh Harjani (IBM)
2024-08-14 17:15 ` Christophe Leroy
2024-09-04 18:34 ` Ritesh Harjani [this message]
2024-07-31 7:56 ` [RFC v1 10/10] book3s64/hash: Disable kfence if not early init Ritesh Harjani (IBM)
2024-08-14 17:18 ` Christophe Leroy
2024-09-04 18:44 ` Ritesh Harjani
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=87a5gn2rp7.fsf@gmail.com \
--to=ritesh.list@gmail.com \
--cc=aneesh.kumar@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=donettom@linux.vnet.ibm.com \
--cc=hbathini@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=npiggin@gmail.com \
--cc=pavrampu@linux.vnet.ibm.com \
/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.