Re: [PATCH v2 5/8] mm/memory_hotplug: Drop MHP_MEMBLOCK_API

From: David Hildenbrand
Date: Tue May 07 2019 - 17:25:38 EST


On 07.05.19 23:19, Dan Williams wrote:
> On Tue, May 7, 2019 at 11:38 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
>>
>> No longer needed, the callers of arch_add_memory() can handle this
>> manually.
>>
>> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
>> Cc: David Hildenbrand <david@xxxxxxxxxx>
>> Cc: Michal Hocko <mhocko@xxxxxxxx>
>> Cc: Oscar Salvador <osalvador@xxxxxxxx>
>> Cc: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
>> Cc: Wei Yang <richard.weiyang@xxxxxxxxx>
>> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx>
>> Cc: Qian Cai <cai@xxxxxx>
>> Cc: Arun KS <arunks@xxxxxxxxxxxxxx>
>> Cc: Mathieu Malaterre <malat@xxxxxxxxxx>
>> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>
>> ---
>> include/linux/memory_hotplug.h | 8 --------
>> mm/memory_hotplug.c | 9 +++------
>> 2 files changed, 3 insertions(+), 14 deletions(-)
>>
>> diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h
>> index 2d4de313926d..2f1f87e13baa 100644
>> --- a/include/linux/memory_hotplug.h
>> +++ b/include/linux/memory_hotplug.h
>> @@ -128,14 +128,6 @@ extern void arch_remove_memory(int nid, u64 start, u64 size,
>> extern void __remove_pages(struct zone *zone, unsigned long start_pfn,
>> unsigned long nr_pages, struct vmem_altmap *altmap);
>>
>> -/*
>> - * Do we want sysfs memblock files created. This will allow userspace to online
>> - * and offline memory explicitly. Lack of this bit means that the caller has to
>> - * call move_pfn_range_to_zone to finish the initialization.
>> - */
>> -
>> -#define MHP_MEMBLOCK_API (1<<0)
>> -
>> /* reasonably generic interface to expand the physical pages */
>> extern int __add_pages(int nid, unsigned long start_pfn, unsigned long nr_pages,
>> struct mhp_restrictions *restrictions);
>> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
>> index e1637c8a0723..107f72952347 100644
>> --- a/mm/memory_hotplug.c
>> +++ b/mm/memory_hotplug.c
>> @@ -250,7 +250,7 @@ void __init register_page_bootmem_info_node(struct pglist_data *pgdat)
>> #endif /* CONFIG_HAVE_BOOTMEM_INFO_NODE */
>>
>> static int __meminit __add_section(int nid, unsigned long phys_start_pfn,
>> - struct vmem_altmap *altmap, bool want_memblock)
>> + struct vmem_altmap *altmap)
>> {
>> int ret;
>>
>> @@ -293,8 +293,7 @@ int __ref __add_pages(int nid, unsigned long phys_start_pfn,
>> }
>>
>> for (i = start_sec; i <= end_sec; i++) {
>> - err = __add_section(nid, section_nr_to_pfn(i), altmap,
>> - restrictions->flags & MHP_MEMBLOCK_API);
>> + err = __add_section(nid, section_nr_to_pfn(i), altmap);
>>
>> /*
>> * EEXIST is finally dealt with by ioresource collision
>> @@ -1066,9 +1065,7 @@ static int online_memory_block(struct memory_block *mem, void *arg)
>> */
>> int __ref add_memory_resource(int nid, struct resource *res)
>> {
>> - struct mhp_restrictions restrictions = {
>> - .flags = MHP_MEMBLOCK_API,
>> - };
>> + struct mhp_restrictions restrictions = {};
>
> With mhp_restrictions.flags no longer needed, can we drop
> mhp_restrictions and just go back to a plain @altmap argument?
>

Oscar wants to use it to configure from where to allocate vmemmaps. That
was the original driver behind it.

--

Thanks,

David / dhildenb