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��.n������g����a����&ޖ)���)��h���&������梷�����Ǟ�m������)������^�����������v���O��zf������