Re: [PATCH v3 2/2] mm: memory_hotplug: drop memoryless node from fallback lists

From: Huang, Ying
Date: Fri Oct 20 2023 - 03:07:16 EST


Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx> writes:

> In offline_pages(), if a node becomes memoryless, we
> will clear its N_MEMORY state by calling node_states_clear_node().
> But we do this after rebuilding the zonelists by calling
> build_all_zonelists(), which will cause this memoryless node to
> still be in the fallback list of other nodes.

For fallback list, do you mean pgdat->node_zonelists[]? If so, in

build_all_zonelists
__build_all_zonelists
build_zonelists
build_zonelists_in_node_order
build_zonerefs_node

populated_zone() will be checked before adding zone into zonelist.

So, IIUC, we will not try to allocate from the memory less node.

--
Best Regards,
Huang, Ying


> This will incur
> some runtime overhead.
>
> To drop memoryless node from fallback lists in this case, just
> call node_states_clear_node() before calling build_all_zonelists().
>
> Signed-off-by: Qi Zheng <zhengqi.arch@xxxxxxxxxxxxx>
> Acked-by: David Hildenbrand <david@xxxxxxxxxx>

[snip]

--
Best Regards,
Huang, Ying