vl: take iothread lock very early
If the iothread lock isn't taken by the main thread, the RCU callbacks might run concurrently with the main thread. QEMU's not ready for that. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Tested-by: Gonglei <arei.gonglei@huawei.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
3180aadb1f
commit
576a94d8bc
6
vl.c
6
vl.c
@ -2767,6 +2767,9 @@ int main(int argc, char **argv, char **envp)
|
||||
FILE *vmstate_dump_file = NULL;
|
||||
Error *main_loop_err = NULL;
|
||||
|
||||
qemu_init_cpu_loop();
|
||||
qemu_mutex_lock_iothread();
|
||||
|
||||
atexit(qemu_run_exit_notifiers);
|
||||
error_set_progname(argv[0]);
|
||||
qemu_init_exec_dir(argv[0]);
|
||||
@ -4102,9 +4105,6 @@ int main(int argc, char **argv, char **envp)
|
||||
|
||||
os_set_line_buffering();
|
||||
|
||||
qemu_init_cpu_loop();
|
||||
qemu_mutex_lock_iothread();
|
||||
|
||||
#ifdef CONFIG_SPICE
|
||||
/* spice needs the timers to be initialized by this point */
|
||||
qemu_spice_init();
|
||||
|
Loading…
Reference in New Issue
Block a user