Current default way of seting the CPUState::numa_node in the numa_post_machine_init() and calling it in vl.c:main() would make the data incorrect in case on cold/hot-plug CPUs.
Now, we move it to the qom/cpu.c:cpu_common_realizefn(). So, Here we remove it. Signed-off-by: Dou Liyang <douly.f...@cn.fujitsu.com> --- include/sysemu/numa.h | 1 - numa.c | 15 --------------- vl.c | 2 -- 3 files changed, 18 deletions(-) diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h index 8f09dcf..b8015a5 100644 --- a/include/sysemu/numa.h +++ b/include/sysemu/numa.h @@ -25,7 +25,6 @@ typedef struct node_info { extern NodeInfo numa_info[MAX_NODES]; void parse_numa_opts(MachineClass *mc); -void numa_post_machine_init(void); void query_numa_node_mem(uint64_t node_mem[]); extern QemuOptsList qemu_numa_opts; void numa_set_mem_node_id(ram_addr_t addr, uint64_t size, uint32_t node); diff --git a/numa.c b/numa.c index 379bc8a..5f68497 100644 --- a/numa.c +++ b/numa.c @@ -394,21 +394,6 @@ void parse_numa_opts(MachineClass *mc) } } -void numa_post_machine_init(void) -{ - CPUState *cpu; - int i; - - CPU_FOREACH(cpu) { - for (i = 0; i < nb_numa_nodes; i++) { - assert(cpu->cpu_index < max_cpus); - if (test_bit(cpu->cpu_index, numa_info[i].node_cpu)) { - cpu->numa_node = i; - } - } - } -} - static void allocate_system_memory_nonnuma(MemoryRegion *mr, Object *owner, const char *name, uint64_t ram_size) diff --git a/vl.c b/vl.c index c643d3f..afe40ce 100644 --- a/vl.c +++ b/vl.c @@ -4549,8 +4549,6 @@ int main(int argc, char **argv, char **envp) cpu_synchronize_all_post_init(); - numa_post_machine_init(); - if (qemu_opts_foreach(qemu_find_opts("fw_cfg"), parse_fw_cfg, fw_cfg_find(), NULL) != 0) { exit(1); -- 2.5.5