mirror of https://github.com/xqemu/xqemu.git
Refactor cpu_has_work/any_cpu_has_work in cpus.c
Avoid duplicate use of the function name cpu_has_work, it's confusing, also their scope. Refactor cpu_has_work to cpu_thread_is_idle and do the same with any_cpu_has_work. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
7e97cd8814
commit
1640032283
43
cpus.c
43
cpus.c
|
@ -137,29 +137,30 @@ static int cpu_can_run(CPUState *env)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int cpu_has_work(CPUState *env)
|
||||
static bool cpu_thread_is_idle(CPUState *env)
|
||||
{
|
||||
if (env->stop)
|
||||
return 1;
|
||||
if (env->queued_work_first)
|
||||
return 1;
|
||||
if (env->stopped || !vm_running)
|
||||
return 0;
|
||||
if (!env->halted)
|
||||
return 1;
|
||||
if (qemu_cpu_has_work(env))
|
||||
return 1;
|
||||
return 0;
|
||||
if (env->stop || env->queued_work_first) {
|
||||
return false;
|
||||
}
|
||||
if (env->stopped || !vm_running) {
|
||||
return true;
|
||||
}
|
||||
if (!env->halted || qemu_cpu_has_work(env)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static int any_cpu_has_work(void)
|
||||
static bool all_cpu_threads_idle(void)
|
||||
{
|
||||
CPUState *env;
|
||||
|
||||
for (env = first_cpu; env != NULL; env = env->next_cpu)
|
||||
if (cpu_has_work(env))
|
||||
return 1;
|
||||
return 0;
|
||||
for (env = first_cpu; env != NULL; env = env->next_cpu) {
|
||||
if (!cpu_thread_is_idle(env)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
static void cpu_debug_handler(CPUState *env)
|
||||
|
@ -743,8 +744,9 @@ static void qemu_tcg_wait_io_event(void)
|
|||
{
|
||||
CPUState *env;
|
||||
|
||||
while (!any_cpu_has_work())
|
||||
while (all_cpu_threads_idle()) {
|
||||
qemu_cond_timedwait(tcg_halt_cond, &qemu_global_mutex, 1000);
|
||||
}
|
||||
|
||||
qemu_mutex_unlock(&qemu_global_mutex);
|
||||
|
||||
|
@ -765,8 +767,9 @@ static void qemu_tcg_wait_io_event(void)
|
|||
|
||||
static void qemu_kvm_wait_io_event(CPUState *env)
|
||||
{
|
||||
while (!cpu_has_work(env))
|
||||
while (cpu_thread_is_idle(env)) {
|
||||
qemu_cond_timedwait(env->halt_cond, &qemu_global_mutex, 1000);
|
||||
}
|
||||
|
||||
qemu_kvm_eat_signals(env);
|
||||
qemu_wait_io_event_common(env);
|
||||
|
@ -1070,7 +1073,7 @@ bool cpu_exec_all(void)
|
|||
}
|
||||
}
|
||||
exit_request = 0;
|
||||
return any_cpu_has_work();
|
||||
return !all_cpu_threads_idle();
|
||||
}
|
||||
|
||||
void set_numa_modes(void)
|
||||
|
|
Loading…
Reference in New Issue