[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180130182947.GK21609@dhcp22.suse.cz>
Date: Tue, 30 Jan 2018 19:29:47 +0100
From: Michal Hocko <mhocko@...nel.org>
To: Pavel Tatashin <pasha.tatashin@...cle.com>
Cc: Bharata B Rao <bharata@...ux.vnet.ibm.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Linux Memory Management List <linux-mm@...ck.org>,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: Memory hotplug not increasing the total RAM
On Tue 30-01-18 13:11:06, Pavel Tatashin wrote:
> Hi Michal,
>
> Thank you for taking care of the problem. The patch may introduce a
> small performance regression during normal boot, as we add a branch
> into a hot initialization path. But, it fixes a current problem, so:
>
> Reviewed-by: Pavel Tatashin <pasha.tatashin@...cle.com>
Thanks!
> However, I think we should change the hotplug code to also not to
> touch the map area until struct pages are initialized.
>
> Currently, we loop through "struct page"s several times during memory hotplug:
>
> 1. memset(0) in sparse_add_one_section()
> 2. loop in __add_section() to set do: set_page_node(page, nid); and
> SetPageReserved(page);
> 3. loop in pages_correctly_reserved() to check that SetPageReserved is set.
> 4. loop in memmap_init_zone() to call __init_single_pfn()
You might be very well correct but the hotplug code is quite subtle and
we do depend on PageReserved at some unexpected places so it is not that
easy I am afraid. My TODO list in the hotplug is quite long. If you feel
like you want to work on that I would be more than happy.
--
Michal Hocko
SUSE Labs
Powered by blists - more mailing lists