[PATCH v3 0/4] mm: Fix vmemmap optimization accounting and initialization

From: Muchun Song

Date: Mon Apr 20 2026 - 22:21:17 EST


The series fixes several bugs in vmemmap optimization, mainly about incorrect
page accounting when vmemmap optimization is enabled for DAX and memory
hotplug paths. Also fixes the pageblock migratetype initialization for
ZONE_DEVICE compound pages.

v2 -> v3:
- Drop patch 4 and patch 5 from v2 since the page table sync issue has
already been fixed by Harry's series.
- [Patch 1]: Remove an unintentionally left line.
- [Patch 4 (previously Patch 6)]: Call cond_resched() every
PAGES_PER_SECTION instead of every compound page, as suggested by
Mike Rapoport.
- Collect Acked-by and Reviewed-by tags from Mike Rapoport.

Muchun Song (4):
mm/sparse-vmemmap: Fix vmemmap accounting underflow
mm/sparse-vmemmap: Pass @pgmap argument to memory deactivation paths
mm/sparse-vmemmap: Fix DAX vmemmap accounting with optimization
mm/mm_init: Fix pageblock migratetype for ZONE_DEVICE compound pages

arch/arm64/mm/mmu.c | 5 +--
arch/loongarch/mm/init.c | 5 +--
arch/powerpc/mm/mem.c | 5 +--
arch/riscv/mm/init.c | 5 +--
arch/s390/mm/init.c | 5 +--
arch/x86/mm/init_64.c | 5 +--
include/linux/memory_hotplug.h | 8 +++--
mm/memory_hotplug.c | 12 +++----
mm/memremap.c | 4 +--
mm/mm_init.c | 43 +++++++++++++++---------
mm/sparse-vmemmap.c | 61 +++++++++++++++++++++++++---------
11 files changed, 104 insertions(+), 54 deletions(-)

--
2.20.1