[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <be249da5-1f10-165a-02a4-a2342cd18692@linux.alibaba.com>
Date: Thu, 10 Mar 2022 14:24:38 +0800
From: Baolin Wang <baolin.wang@...ux.alibaba.com>
To: Oscar Salvador <osalvador@...e.de>,
"Huang, Ying" <ying.huang@...el.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Dave Hansen <dave.hansen@...ux.intel.com>,
Abhishek Goel <huntbag@...ux.vnet.ibm.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm: Only re-generate demotion targets when a numa node
changes its N_CPU state
Hi Oscar,
On 3/10/2022 1:48 PM, Oscar Salvador wrote:
> On Thu, Mar 10, 2022 at 08:39:53AM +0800, Huang, Ying wrote:
>> We need to call set_migration_target_nodes() during system boot
>> somewhere, either here or in init_mm_internals().
>
> Hi Huang Ying,
>
> vmstat_cpu_online() already gets called during boot:
>
> static struct cpuhp_step cpuhp_hp_states[] = {
> ...
> #ifdef CONFIG_SMP
> [CPUHP_CREATE_THREADS]= {
> .name = "threads:prepare",
> .startup.single = smpboot_create_threads,
> .teardown.single = NULL,
> .cant_stop = true,
> },
> ...
>
> smpboot_create_threads
> __smpboot_create_thread
> smpboot_thread_fn
> ht->thread_fn()
> cpuhp_thread_fun
> cpuhp_invoke_callback
> vmstat_cpu_online
>
> That for every CPU that is brought up during boot.
>
> So unless I am missing something, I would say we are already covered
> there, right?
I've tested your patch, unfortunately it can not work. It already set
the node with N_CPU state in init_cpu_node_state() earlier, so in
vmstat_cpu_online() ,the sentence 'if(!node_state(cpu_to_node(cpu),
N_CPU))' is always false, which means it will not call
set_migration_target_nodes().
Like Huang Ying said, we should call set_migration_target_nodes() in
migrate_on_reclaim_init() or init_mm_internals().
Powered by blists - more mailing lists