On 9/7/20 6:30 PM, Claudio Fontana wrote: > On 9/7/20 12:20 PM, Philippe Mathieu-Daudé wrote: >> On 9/7/20 12:05 PM, Claudio Fontana wrote: >>> Hi Richard, >>> >>> currently rebasing on top of this one, >>> just a question, why is the patch not directly using "current_machine"? >> >> For user mode? > > In user mode I'd not expect softmmu/cpus.c to be built at all...
Which is why :) current_machine is NULL in user-mode. > > Ciao, > > Claudio > >> >>> >>> Is using MACHINE(qdev_get_machine()) preferrable here? >>> >>> Thanks, >>> >>> Claudio >>> >>> On 9/3/20 11:40 PM, Richard Henderson wrote: >>>> 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é <f4...@amsat.org> >>>> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> >>>> --- >>>> softmmu/cpus.c | 11 ++++++++++- >>>> 1 file changed, 10 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/softmmu/cpus.c b/softmmu/cpus.c >>>> index a802e899ab..e3b98065c9 100644 >>>> --- a/softmmu/cpus.c >>>> +++ b/softmmu/cpus.c >>>> @@ -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()); >>> >>> MachineState *ms = current_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); >>>> >>>> >>> >>> > >