Re: [PATCH] mem-hotplug: let memblock skip the hotpluggable memory regions in __next_mem_range()

From: tangchen
Date: Sun Aug 17 2014 - 21:12:46 EST


Hi tj,

On 08/17/2014 07:08 PM, Tejun Heo wrote:
Hello,

On Sat, Aug 16, 2014 at 10:36:41PM +0800, Xishi Qiu wrote:
numa_clear_node_hotplug()? There is only numa_clear_kernel_node_hotplug().
Yeah, that one.

If we don't clear hotpluggable flag in free_low_memory_core_early(), the
memory which marked hotpluggable flag will not free to buddy allocator.
Because __next_mem_range() will skip them.

free_low_memory_core_early
for_each_free_mem_range
for_each_mem_range
__next_mem_range
Ah, okay, so the patch fixes __next_mem_range() and thus makes
free_low_memory_core_early() to skip hotpluggable regions unlike
before. Please explain things like that in the changelog. Also,
what's its relationship with numa_clear_kernel_node_hotplug()? Do we
still need them? If so, what are the different roles that these two
separate places serve?

numa_clear_kernel_node_hotplug() only clears hotplug flags for the nodes
the kernel resides in, not for hotpluggable nodes. The reason why we did
this is to enable the kernel to allocate memory in case all the nodes are
hotpluggable.

And we clear hotplug flags for all the nodes in free_low_memory_core_early()
is because if we do not, all hotpluggable memory won't be able to be freed
to buddy after Qiu's patch.

Thanks.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/