On 05.08.25 14:38, Jason Gunthorpe wrote:
On Tue, Aug 05, 2025 at 02:07:49PM +0200, David Hildenbrand wrote:
I don't see an easy way to guarantee that. E.g., populate_section_memmap
really just does a kvmalloc_node() and
__populate_section_memmap()->memmap_alloc() a memblock_alloc().
Well, it is really easy, if you do the kvmalloc_node and you get the
single unwanted struct page value, then call it again and free the
first one. The second call is guarenteed to not return the unwanted
value because the first call has it allocated.
So you want to walk all existing sections to check that? :)
That's the kind of approach I would describe with the words Linus used.
--
Cheers,
David / dhildenb