提交 bd967e05 编写于 作者: P pbrook

SMP half-idle fix.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2477 c046a42c-6fe2-441c-8c8c-71466251a162
上级 f3d6b95e
......@@ -6298,13 +6298,16 @@ int main_loop(void)
#ifdef CONFIG_PROFILER
qemu_time += profile_getclock() - ti;
#endif
if (ret == EXCP_HLT) {
/* Give the next CPU a chance to run. */
cur_cpu = env;
continue;
}
if (ret != EXCP_HALTED)
break;
/* all CPUs are halted ? */
if (env == cur_cpu) {
ret = EXCP_HLT;
if (env == cur_cpu)
break;
}
}
cur_cpu = env;
......@@ -6325,9 +6328,9 @@ int main_loop(void)
if (ret == EXCP_DEBUG) {
vm_stop(EXCP_DEBUG);
}
/* if hlt instruction, we wait until the next IRQ */
/* If all cpus are halted then wait until the next IRQ */
/* XXX: use timeout computed from timers */
if (ret == EXCP_HLT)
if (ret == EXCP_HALTED)
timeout = 10;
else
timeout = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册