Re: [PATCH v5 1/5] mm,memory_hotplug: Allocate memmap from the added memory range

From: Michal Hocko
Date: Thu Mar 25 2021 - 10:09:47 EST


On Thu 25-03-21 13:40:45, David Hildenbrand wrote:
> On 25.03.21 13:35, Michal Hocko wrote:
> > On Thu 25-03-21 12:08:43, David Hildenbrand wrote:
> > > On 25.03.21 11:55, Oscar Salvador wrote:
[...]
> > > > - When moving the initialization/accounting to hot-add/hot-remove,
> > > > the section containing the vmemmap pages will remain offline.
> > > > It might get onlined once the pages get online in online_pages(),
> > > > or not if vmemmap pages span a whole section.
> > > > I remember (but maybe David rmemeber better) that that was a problem
> > > > wrt. pfn_to_online_page() and hybernation/kdump.
> > > > So, if that is really a problem, we would have to care of ot setting
> > > > the section to the right state.
> > >
> > > Good memory. Indeed, hibernation/kdump won't save the state of the vmemmap,
> > > because the memory is marked as offline and, thus, logically without any
> > > valuable content.
> >
> > Could you point me to the respective hibernation code please? I always
> > get lost in that area. Anyway, we do have the same problem even if the
> > whole accounting is handled during {on,off}lining, no?
>
> kernel/power/snapshot.c:saveable_page().

Thanks! So this is as I've suspected. The very same problem is present
if the memory block is marked offline. So we need a solution here
anyway. One way to go would be to consider these vmemmap pages always
online. pfn_to_online_page would have to special case them but we would
need to identify them first. I used to have PageVmemmap or something
like that in my early attempt to do this.

That being said this is not an argument for one or the other aproach.
Both need fixing.
--
Michal Hocko
SUSE Labs