Re: [RFC PATCH] rework memory hotplug onlining

From: Kani, Toshimitsu
Date: Thu Mar 16 2017 - 13:35:32 EST


On Thu, 2017-03-16 at 09:54 +0100, Michal Hocko wrote:
> On Wed 15-03-17 23:08:14, Kani, Toshimitsu wrote:
> > On Wed, 2017-03-15 at 10:13 +0100, Michal Hocko wrote:
:
> > > - zone = page_zone(pfn_to_page(valid_start));
> >
> > Please do not remove the fix made in a96dfddbcc043. zone needs to
> > be set from valid_start, not from start_pfn.
>
> Thanks for pointing this out. I was scratching my head about this
> part but was too tired from previous git archeology so I didn't check
> the history of this particular part.
>
> I will restore the original behavior but before I do that I am really
> curious whether partial memblocks are even supported for onlining.
> Maybe I am missing something but I do not see any explicit checks for
> NULL struct page when we set zone boundaries or online a memblock. Is
> it possible those memblocks are just never hotplugable?

check_hotplug_memory_range() checks if a given range is aligned by the
section size.

This memory device represents a memory_block, which may have multiple
sections per 'sections_per_block'. This value is set to 2GB/128MB for
2GB memory_block. So, I'd expect that hot-add works as long as the
address is aligned by 128MB, but I have not tested it myself.

Thanks,
-Toshi