On Mon, Jun 26, 2017 at 09:46:35AM +0200, Michal Hocko wrote: >On Sun 25-06-17 10:52:23, Wei Yang wrote: >> Michal & all >> >> Previously we found the hotplug range is mem_section aligned instead of >> memory_block. >> >> Here is several draft patches to fix that. To make sure I am getting your >> point correctly, I post it here before further investigation. > >This description doesn't explain what the problem is and why do we want >to fix it. Before diving into the code and review changes it would help >a lot to give a short introduction and explain your intention and your >assumptions you base your changes on. > >So please start with a highlevel description first. > Here is the high level description in my mind, glad to see your comment. The minimum unit of memory hotplug is memory_block instead of mem_section. While in current implementation, we see several concept misunderstanding. For example: 1. The alignment check is based on mem_section instead of memory_block 2. Online memory range on section base instead of memory_block base Even memory_block and mem_section are close related, they are two concepts. It is possible to initialize and register them respectively. For example: 1. In __add_section(), it tries to register these two in one place. This patch generally does the following: 1. Aligned the range with memory_block 2. Online rage with memory_block base 3. Split the registration of memory_block and mem_section -- Wei Yang Help you, Help me