Re: [PATCH v4 2/2] mm: Init page count in reserve_bootmem_region when MEMINIT_EARLY

From: Yajun Deng
Date: Thu Oct 12 2023 - 05:36:57 EST



On 2023/10/12 17:19, Mike Rapoport wrote:
On Thu, Oct 05, 2023 at 10:04:28PM +0800, Yajun Deng wrote:
That 'if' breaks the invariant that __free_pages_core is
always called for pages with initialized page count. Adding
it may lead to subtle bugs and random memory corruption so we
don't want to add it at the first place.
As long as we have to special-case memory hotplug, we know that
we are always coming via generic_online_page() in that case. We
could either move some logic over there, or let
__free_pages_core() know what it should do.
Looks like the patch rather special cases MEMINIT_EARLY, although
I didn't check throughfully other code paths. Anyway, relying on
page_count() to be correct in different ways for different
callers of __free_pages_core() does not sound right to me.
Absolutely agreed.

I already sent v5  a few days ago. Comments, please...
Does it address all the feedback from this thread?
Except hotplug.
Please reread carefully the last comments from me and from David above.


I replied in another thread about that 'if' statement. David just replied to me, let's discuss in another thread.