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

Ingo Molnar
2023-10-20T08:32:21Z

* Qi Zheng <zhengqi.arch@bytedance.com> wrote:

> 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. 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().

s/memoryless node
/memoryless nodes

>
> Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
> Acked-by: David Hildenbrand <david@redhat.com>
> ---
> mm/memory_hotplug.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
> index d4a364fdaf8f..f019f7d6272c 100644
> --- a/mm/memory_hotplug.c
> +++ b/mm/memory_hotplug.c
> @@ -2036,12 +2036,16 @@ int __ref offline_pages(unsigned long start_pfn, unsigned long nr_pages,
> /* reinitialise watermarks and update pcp limits */
> init_per_zone_wmark_min();
>
> + /*
> + * Make sure to mark the node as memory-less before rebuilding the zone
> + * list. Otherwise this node would still appear in the fallback lists.
> + */
> + node_states_clear_node(node, &arg);

Acked-by: Ingo Molnar <mingo@kernel.org>

Thanks,

Ingo