During reviewing David's code, I found current sub-section hotplug is broken in several places. The following link fix one potential issue, while David and I still spot some suspicious points. https://lkml.org/lkml/2020/2/6/334 The problem here is mainly about the memmap manipulation: * memmap would be overwrite if not use SPARSEMEM_VMEMMAP * only need to adjust memmap for SPARSEMEM_VMEMMAP Wei Yang (3): mm/sparsemem: adjust memmap only for SPARSEMEM_VMEMMAP mm/sparsemem: get physical address to page struct instead of virtual address to pfn mm/sparsemem: avoid memmap overwrite for non-SPARSEMEM_VMEMMAP mm/sparse.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) -- 2.17.1