vl: Ensure the numa_post_machine_init func in the appropriate location
In the numa_post_machine_init(), we use CPU_FOREACH macro to set all CPUs' namu_node. So, we should make sure that we call it after Qemu has already initialied all the CPUs. As we all know, the CPUs can be created by "-smp"(pc_new_cpu) or "-device"(qdev_device_add) command. But, before the device init, Qemu execute the numa_post_machine_init earlier. It makes the mapping of NUMA nodes and CPUs incorrect. The patch move the numa_post_machine_init func in the appropriate location. Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com> Message-Id: <1484664152-24446-2-git-send-email-douly.fnst@cn.fujitsu.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
		
							parent
							
								
									bd72159db4
								
							
						
					
					
						commit
						9c6703fe82
					
				
							
								
								
									
										5
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								vl.c
									
									
									
									
									
								
							| @ -4513,8 +4513,6 @@ int main(int argc, char **argv, char **envp) | |||||||
| 
 | 
 | ||||||
|     cpu_synchronize_all_post_init(); |     cpu_synchronize_all_post_init(); | ||||||
| 
 | 
 | ||||||
|     numa_post_machine_init(); |  | ||||||
| 
 |  | ||||||
|     if (hax_enabled()) { |     if (hax_enabled()) { | ||||||
|         hax_sync_vcpus(); |         hax_sync_vcpus(); | ||||||
|     } |     } | ||||||
| @ -4539,6 +4537,9 @@ int main(int argc, char **argv, char **envp) | |||||||
|                           device_init_func, NULL, NULL)) { |                           device_init_func, NULL, NULL)) { | ||||||
|         exit(1); |         exit(1); | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     numa_post_machine_init(); | ||||||
|  | 
 | ||||||
|     rom_reset_order_override(); |     rom_reset_order_override(); | ||||||
| 
 | 
 | ||||||
|     /* Did we create any drives that we failed to create a device for? */ |     /* Did we create any drives that we failed to create a device for? */ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dou Liyang
						Dou Liyang