Re: [PATCH v1 1/3] mm: pass meminit_context to __free_pages_core()

From: Oscar Salvador
Date: Mon Jun 10 2024 - 00:03:53 EST


On Fri, Jun 07, 2024 at 11:09:36AM +0200, David Hildenbrand wrote:
> In preparation for further changes, let's teach __free_pages_core()
> about the differences of memory hotplug handling.
>
> Move the memory hotplug specific handling from generic_online_page() to
> __free_pages_core(), use adjust_managed_page_count() on the memory
> hotplug path, and spell out why memory freed via memblock
> cannot currently use adjust_managed_page_count().
>
> Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>

All looks good but I am puzzled with something.

> + } else {
> + /* memblock adjusts totalram_pages() ahead of time. */
> + atomic_long_add(nr_pages, &page_zone(page)->managed_pages);
> + }

You say that memblock adjusts totalram_pages ahead of time, and I guess
you mean in memblock_free_all()

pages = free_low_memory_core_early()
totalram_pages_add(pages);

but that is not ahead, it looks like it is upading __after__ sending
them to buddy?


--
Oscar Salvador
SUSE Labs