Messages in this thread | | | Date | Thu, 12 Oct 2023 17:36:40 +0800 | Subject | Re: [PATCH v4 2/2] mm: Init page count in reserve_bootmem_region when MEMINIT_EARLY | From | Yajun Deng <> |
| |
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.
| |