softmmu/cpus: Only set parallel_cpus for SMP
Do not set parallel_cpus if there is only one cpu instantiated. This will allow tcg to use serial code to implement atomics. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
e7e8f33fb6
commit
4ca3d09cd9
@ -1895,6 +1895,16 @@ static void qemu_tcg_init_vcpu(CPUState *cpu)
|
||||
if (!tcg_region_inited) {
|
||||
tcg_region_inited = 1;
|
||||
tcg_region_init();
|
||||
/*
|
||||
* If MTTCG, and we will create multiple cpus,
|
||||
* then we will have cpus running in parallel.
|
||||
*/
|
||||
if (qemu_tcg_mttcg_enabled()) {
|
||||
MachineState *ms = MACHINE(qdev_get_machine());
|
||||
if (ms->smp.max_cpus > 1) {
|
||||
parallel_cpus = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (qemu_tcg_mttcg_enabled() || !single_tcg_cpu_thread) {
|
||||
@ -1904,7 +1914,6 @@ static void qemu_tcg_init_vcpu(CPUState *cpu)
|
||||
|
||||
if (qemu_tcg_mttcg_enabled()) {
|
||||
/* create a thread per vCPU with TCG (MTTCG) */
|
||||
parallel_cpus = true;
|
||||
snprintf(thread_name, VCPU_THREAD_NAME_SIZE, "CPU %d/TCG",
|
||||
cpu->cpu_index);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user