From: Paolo Bonzini Date: Tue, 3 Mar 2015 10:36:09 +0000 (+0100) Subject: vl: take iothread lock very early X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=576a94d8bcaa1bb07a81d9ffd2cf76095a66ad9a;p=qemu.git 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 Tested-by: Christian Borntraeger Tested-by: Gonglei Signed-off-by: Peter Maydell --- diff --git a/vl.c b/vl.c index 5d13d2fd5e..801d48709c 100644 --- a/vl.c +++ b/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();