Re: [RFC] arm64: mm: update max_pfn after memory hotplug
From: David Hildenbrand <hidden>
Date: 2021-09-28 07:33:45
Also in:
linux-mm, lkml
On 28.09.21 08:12, Chris Goldsworthy wrote:
On Tue, Sep 28, 2021 at 02:22:59AM +0300, Georgi Djakov wrote:quoted
On 9/27/2021 6:51 PM, David Hildenbrand wrote:quoted
On 24.09.21 00:54, Chris Goldsworthy wrote:quoted
From: Sudarshan Rajagopalan <redacted> After new memory blocks have been hotplugged, max_pfn and max_low_pfn needs updating to reflect on new PFNs being hot added to system. Signed-off-by: Sudarshan Rajagopalan <redacted> Signed-off-by: Chris Goldsworthy <redacted> --- arch/arm64/mm/mmu.c | 5 +++++ 1 file changed, 5 insertions(+)diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index cfd9deb..fd85b51 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c@@ -1499,6 +1499,11 @@ int arch_add_memory(int nid, u64 start, u64 size, if (ret) __remove_pgd_mapping(swapper_pg_dir, __phys_to_virt(start), size); + else { + max_pfn = PFN_UP(start + size); + max_low_pfn = max_pfn; + } + return ret;Note: didn't verify if updating max_low_pfn is correct here.My understanding is that max_low_pfn defines the low/high memory boundary and it should be also updated. Thanks, GeorgiTo build more on Georgi's response, our assumption here after an offline discussion is that max_low_pfn would not be equal to max_pfn only if there is high memory - another assumption is that arm64 kernels will not need high memory due to their large logical mappings. Under these two assumptions, the patch is correct. Perhaps Catalin can ack or critique this, as he initially set max_pfn = max_low_pfn in the first arm64 mm initialization code:
Makes sense to me, thanks. -- Thanks, David / dhildenb _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel