[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190108085002.GA18718@MiWiFi-R3L-srv>
Date: Tue, 8 Jan 2019 16:50:02 +0800
From: Baoquan He <bhe@...hat.com>
To: Mike Rapoport <rppt@...ux.ibm.com>
Cc: Tejun Heo <tj@...nel.org>, Pingfan Liu <kernelfans@...il.com>,
linux-acpi@...r.kernel.org, linux-mm@...ck.org,
kexec@...ts.infradead.org, Tang Chen <tangchen@...fujitsu.com>,
"Rafael J. Wysocki" <rjw@...ysocki.net>,
Len Brown <lenb@...nel.org>,
Andrew Morton <akpm@...ux-foundation.org>,
Mike Rapoport <rppt@...ux.vnet.ibm.com>,
Michal Hocko <mhocko@...e.com>,
Jonathan Corbet <corbet@....net>,
Yaowei Bai <baiyaowei@...s.chinamobile.com>,
Pavel Tatashin <pasha.tatashin@...cle.com>,
Nicholas Piggin <npiggin@...il.com>,
Naoya Horiguchi <n-horiguchi@...jp.nec.com>,
Daniel Vacek <neelx@...hat.com>,
Mathieu Malaterre <malat@...ian.org>,
Stefan Agner <stefan@...er.ch>, Dave Young <dyoung@...hat.com>,
yinghai@...nel.org, vgoyal@...hat.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCHv3 1/2] mm/memblock: extend the limit inferior of
bottom-up after parsing hotplug attr
On 01/06/19 at 08:27am, Mike Rapoport wrote:
> I do not suggest to discard the bottom-up method, I merely suggest to allow
> it to use [0, kernel_start).
Sorry for late reply.
I misunderstood it, sorry.
> > This bottom-up way is taken on many ARCHes, it works well on system if
> > KASLR is not enabled. Below is the searching result in the current linux
> > kernel, we can see that all ARCHes have this mechanism, except of
> > arm/arm64. But now only arm64/mips/x86 have KASLR.
> >
> > W/o KASLR, allocating memblock region above kernle end when hotplug info
> > is not parsed, looks very reasonable. Since kernel is usually put at
> > lower address, e.g on x86, it's 16M. My thought is that we need do
> > memblock allocation around kernel before hotplug info parsed. That is
> > for system w/o KASLR, we will keep the current bottom-up way; for system
> > with KASLR, we should allocate memblock region top-down just below
> > kernel start.
>
> I completely agree. I was thinking about making
> memblock_find_in_range_node() to do something like
>
> if (memblock_bottom_up()) {
> bottom_up_start = max(start, kernel_end);
In this way, if start < kernel_end, it will still succeed to find a
region in bottom-up way after kernel end.
I am still reading code. Just noticed Pingfan sent a RFC patchset to put
SRAT parsing earlier, not sure if he has tested it in numa system with
acpi. I doubt that really works.
Thanks
Baoquan
> ret = __memblock_find_range_bottom_up(bottom_up_start, end,
> size, align, nid, flags);
> if (ret)
> return ret;
>
> bottom_up_start = max(start, 0);
> end = kernel_start;
>
> ret = __memblock_find_range_top_down(bottom_up_start, end,
> size, align, nid, flags);
> if (ret)
> return ret;
> }
Powered by blists - more mailing lists