diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2010-02-09 12:49:04 -0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-02-10 12:46:06 -0600 |
commit | c37cc7b072fa4ca8d8d21ac31d26baff5f47f9f9 (patch) | |
tree | c4c753ca95e59bdb7faafff7bacf78a9c84632a2 /vl.c | |
parent | 5307d7d35e70a9bf1b290f2eff00236c7ad22220 (diff) | |
download | qemu-c37cc7b072fa4ca8d8d21ac31d26baff5f47f9f9.tar.gz qemu-c37cc7b072fa4ca8d8d21ac31d26baff5f47f9f9.tar.bz2 qemu-c37cc7b072fa4ca8d8d21ac31d26baff5f47f9f9.zip |
iothread: fix vcpu stop with smp tcg
Round robin vcpus in tcg_cpu_next even if the vm stopped. This
allows all cpus to enter stopped state.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'vl.c')
-rw-r--r-- | vl.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -3876,14 +3876,15 @@ static void tcg_cpu_exec(void) for (; next_cpu != NULL; next_cpu = next_cpu->next_cpu) { CPUState *env = cur_cpu = next_cpu; - if (!vm_running) - break; if (timer_alarm_pending) { timer_alarm_pending = 0; break; } if (cpu_can_run(env)) ret = qemu_cpu_exec(env); + else if (env->stop) + break; + if (ret == EXCP_DEBUG) { gdb_set_stop_cpu(env); debug_requested = 1; |