On 3/8/22 02:27, Oscar Salvador wrote: > @@ -2043,7 +2044,12 @@ static void __init init_cpu_node_state(void) > static int vmstat_cpu_online(unsigned int cpu) > { > refresh_zone_stat_thresholds(); > - node_set_state(cpu_to_node(cpu), N_CPU); > + > + if (!node_state(cpu_to_node(cpu), N_CPU)) { > + node_set_state(cpu_to_node(cpu), N_CPU); > + set_migration_target_nodes(); > + } > + > return 0; > } > > @@ -2066,6 +2072,8 @@ static int vmstat_cpu_dead(unsigned int cpu) > return 0; > > node_clear_state(node, N_CPU); > + set_migration_target_nodes(); > + > return 0; > } Yeah, those callbacks do look like they're reinventing the wheel. This is a much more direct way of doing it.