On 26/04/28 04:18PM, Muchun Song wrote:
> The series fixes several bugs in vmemmap optimization, mainly around
> incorrect page accounting and memmap initialization in DAX and memory
> hotplug paths. It also fixes pageblock migratetype initialization and
> struct page initialization for ZONE_DEVICE compound pages.
> 
> Patches 1-4 fix vmemmap accounting issues. Patch 1 fixes an accounting
> underflow in the section activation failure path by moving vmemmap page
> accounting into the lower-level allocation and freeing helpers. Patch 2
> fixes incorrect altmap passing in the memory hotplug error path. Patch 3
> passes pgmap through memory deactivation paths so the teardown side can
> determine whether vmemmap optimization was in effect. Patch 4 uses that
> information to account the optimized DAX vmemmap size correctly.
> 
> Patches 5-6 fix initialization issues in mm/mm_init. One makes sure all
> pageblocks in ZONE_DEVICE compound pages get their migratetype
> initialized. The other fixes a case where DAX memory hotplug reuses an
> unoptimized early-section memmap while compound_nr_pages() still assumes
> vmemmap optimization, leaving tail struct pages uninitialized.
> 
> Changes in v8:
> - In patch 4, move VM_WARN_ON_ONCE(nr_pages > PAGES_PER_SECTION) to the
>   top of section_nr_vmemmap_pages().
> - In patch 4, add Acked-by from David Hildenbrand.

Thanks!

Acked-by: Liam R. Howlett <[email protected]>

> 
> Muchun Song (6):
>   mm/sparse-vmemmap: Fix vmemmap accounting underflow
>   mm/memory_hotplug: Fix incorrect altmap passing in error path
>   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
>   mm/mm_init: Fix uninitialized struct pages for ZONE_DEVICE
> 
>  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            | 13 ++++----
>  mm/memremap.c                  |  4 +--
>  mm/mm_init.c                   | 47 ++++++++++++++++-----------
>  mm/sparse-vmemmap.c            | 58 ++++++++++++++++++++++++++--------
>  11 files changed, 105 insertions(+), 55 deletions(-)
> 
> 
> base-commit: 39704f00f747aba3144289870b5fd8ac230a9aaf
> -- 
> 2.20.1
> 
> 

Reply via email to