[PATCH v5 4/7] mm/hotplug: Support memmap_on_memory when memmap is not aligned to pageblocks
David Hildenbrand
david at redhat.com
Wed Jul 26 19:04:29 AEST 2023
>>> /*
>>> @@ -1310,7 +1400,10 @@ int __ref add_memory_resource(int nid, struct resource *res, mhp_t mhp_flags)
>>> {
>>> struct mhp_params params = { .pgprot = pgprot_mhp(PAGE_KERNEL) };
>>> enum memblock_flags memblock_flags = MEMBLOCK_NONE;
>>> - struct vmem_altmap mhp_altmap = {};
>>> + struct vmem_altmap mhp_altmap = {
>>> + .base_pfn = PHYS_PFN(res->start),
>>> + .end_pfn = PHYS_PFN(res->end),
>>
>> Is it required to set .end_pfn, and if so, shouldn't we also set it to
>> base_pfn + memory_block_memmap_on_memory_pages()) ?
>>
>
> We use that in ppc64 for checking altmap boundary condition. As we
> discussed earlier, ppc64 due to vmemmap mapping size restrictions can't
> always allocate vmemmap pages from altmap area even if requested. We
> fallback to regular memory alocation in that case (only used now with
> pmem). We use altmap.end_pfn for that boundary check. You can refer to
> altmap_cross_boundary() for more details.
But even then, setting the end to the end of the resource size is wrong,
no? We don't want anybody to allocate beyond base_pfn +
memory_block_memmap_on_memory_pages().
Apart from that, LGTM.
--
Cheers,
David / dhildenb
More information about the Linuxppc-dev
mailing list