]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc/nvdimm: Update vmemmap_populated to check sub-section range
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Tue, 17 Sep 2019 12:38:51 +0000 (18:08 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 28 Oct 2019 10:54:15 +0000 (21:54 +1100)
commite2c200d26f94bcc3bbff801db6896f51420ed97f
tree17ebb2c4799deb61478eaa085a21662a907096ce
parentd257ce6d0d19e9633b061699406532681c0f2ee9
powerpc/nvdimm: Update vmemmap_populated to check sub-section range

With commit: 6fb03192f873 ("mm/devm_memremap_pages: enable sub-section remap")
pmem namespaces are remapped in 2M chunks. On architectures like ppc64 we
can map the memmap area using 16MB hugepage size and that can cover
a memory range of 16G.

While enabling new pmem namespaces, since memory is added in sub-section chunks,
before creating a new memmap mapping, kernel should check whether there is an
existing memmap mapping covering the new pmem namespace. Currently, this is
validated by checking whether the section covering the range is already
initialized or not. Considering there can be multiple namespaces in the same
section this can result in wrong validation. Update this to check for
sub-sections in the range. This is done by checking for all pfns in the range we
are mapping.

We could optimize this by checking only just one pfn in each sub-section. But
since this is not fast-path we keep this simple.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20190917123851.22553-1-aneesh.kumar@linux.ibm.com
arch/powerpc/mm/init_64.c