[RFC Patch 0/3] mm/mm_init: fix and cleanup mirrored_kernelcore

From: Wei Yang

Date: Tue Jun 23 2026 - 05:25:56 EST


When reviewing patch set "mm/memory_hotplug: optimize zone contiguous check
when changing pfn range" [1], we notice mirrored_kernelcore introduced some
special case to handle.

While during the discussion and test, it shows current mirrored_kernelcore
implementation breaks other memmap_init() behavior:

* disturbs defer_init()
* some Movable zone range would be initialized twice

The reason is Zone Movable and Zone Normal overlaps and current logic doesn't
handle it well.

As Yuan shows in [2], physical overlapped zone seems not exist in practice. If
remove the possibility of overlapped zone, problem could be solved. And also
could benefit zone contiguous optimization, IIUC.

Patch [1]: remove the overlapped zone, which fix the above two problem
Patch [2]: remove overlap_memmap_init() as there is no overlapped zone, but
record current double initialize problem for reference
Patch [3]: remove absent pages calculation for mirrored_kernelcore

[1]: https://lore.kernel.org/all/20260520093457.3719960-1-yuan1.liu@xxxxxxxxx/T/#u
[2]: https://lore.kernel.org/all/20260520093457.3719960-1-yuan1.liu@xxxxxxxxx/T/#mb0bd07ffd562a5b029f0f07751e580ca339c5b51

Cc: "David Hildenbrand (Arm)" <david@xxxxxxxxxx>
Cc: Yuan Liu <yuan1.liu@xxxxxxxxx>

Wei Yang (3):
mm/mm_init: adjust overlapped zone for mirror memory too
mm/mm_init: remove overlap_memmap_init() as no overlapped zone
mm/mm_init: remove special handling absent pages for
mirrored_kernelcore

mm/mm_init.c | 58 ++--------------------------------------------------
1 file changed, 2 insertions(+), 56 deletions(-)

---

This series is based on one proposed fix for node_spanned_pages:

https://lore.kernel.org/linux-mm/20260622022403.16375-1-richard.weiyang@xxxxxxxxx/

--
2.34.1