lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 27 Sep 2021 23:12:23 -0700
From:   Chris Goldsworthy <quic_cgoldswo@...cinc.com>
To:     Georgi Djakov <quic_c_gdjako@...cinc.com>
CC:     David Hildenbrand <david@...hat.com>,
        Chris Goldsworthy <quic_cgoldswo@...cinc.com>,
        Catalin Marinas <catalin.marinas@....com>,
        "Will Deacon" <will@...nel.org>,
        Andrew Morton <akpm@...ux-foundation.org>,
        <linux-arm-kernel@...ts.infradead.org>,
        <linux-kernel@...r.kernel.org>, <linux-mm@...ck.org>,
        Sudarshan Rajagopalan <quic_sudaraja@...cinc.com>
Subject: Re: [RFC] arm64: mm: update max_pfn after memory hotplug

On Tue, Sep 28, 2021 at 02:22:59AM +0300, Georgi Djakov wrote:
> On 9/27/2021 6:51 PM, David Hildenbrand wrote:
> >On 24.09.21 00:54, Chris Goldsworthy wrote:
> >>From: Sudarshan Rajagopalan <quic_sudaraja@...cinc.com>
> >>
> >>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 <quic_sudaraja@...cinc.com>
> >>Signed-off-by: Chris Goldsworthy <quic_cgoldswo@...cinc.com>
> >>---
> >>  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,
> Georgi

To 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:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c1cc1552616d0f354d040823151e61634e7ad01f

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ