Re: [PATCH 2/2] arm64: allow hotpluggable sections to be offlined

From: Anshuman Khandual
Date: Mon Oct 19 2020 - 02:57:12 EST




On 10/17/2020 01:04 PM, David Hildenbrand wrote:
>
>> Am 17.10.2020 um 04:03 schrieb Sudarshan Rajagopalan <sudaraja@xxxxxxxxxxxxxx>:
>>
>> On receiving the MEM_GOING_OFFLINE notification, we disallow offlining of
>> any boot memory by checking if section_early or not. With the introduction
>> of SECTION_MARK_HOTPLUGGABLE, allow boot mem sections that are marked as
>> hotpluggable with this bit set to be offlined and removed. This now allows
>> certain boot mem sections to be offlined.
>>
>
> The check (notifier) is in arm64 code. I don‘t see why you cannot make such decisions completely in arm64 code? Why would you have to mark sections?
>
> Also, I think I am missing from *where* the code that marks sections removable is even called? Who makes such decisions?

>From the previous patch.

+EXPORT_SYMBOL_GPL(mark_memory_hotpluggable);

>
> This feels wrong.
>
>> Signed-off-by: Sudarshan Rajagopalan <sudaraja@xxxxxxxxxxxxxx>
>> Cc: Catalin Marinas <catalin.marinas@xxxxxxx>
>> Cc: Will Deacon <will@xxxxxxxxxx>
>> Cc: Anshuman Khandual <anshuman.khandual@xxxxxxx>
>> Cc: Mark Rutland <mark.rutland@xxxxxxx>
>> Cc: Gavin Shan <gshan@xxxxxxxxxx>
>> Cc: Logan Gunthorpe <logang@xxxxxxxxxxxx>
>> Cc: David Hildenbrand <david@xxxxxxxxxx>
>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>> Cc: Steven Price <steven.price@xxxxxxx>
>> Cc: Suren Baghdasaryan <surenb@xxxxxxxxxx>
>> ---
>> arch/arm64/mm/mmu.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
>> index 75df62fea1b6..fb8878698672 100644
>> --- a/arch/arm64/mm/mmu.c
>> +++ b/arch/arm64/mm/mmu.c
>> @@ -1487,7 +1487,7 @@ static int prevent_bootmem_remove_notifier(struct notifier_block *nb,
>>
>> for (; pfn < end_pfn; pfn += PAGES_PER_SECTION) {
>> ms = __pfn_to_section(pfn);
>> - if (early_section(ms))
>> + if (early_section(ms) && !removable_section(ms))

Till challenges related to boot memory removal on arm64 platform get
resolved, no portion of boot memory can be offlined. Let alone via a
driver making such decisions.

>> return NOTIFY_BAD;
>> }
>> return NOTIFY_OK;
>> --
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
>> a Linux Foundation Collaborative Project
>>
>
>