On 27/06/16 12:36, Alex Bennée wrote: > Sergey Fedorov <sergey.fedo...@linaro.org> writes: > >> From: Sergey Fedorov <serge.f...@gmail.com> >> (snip) >> diff --git a/cpus.c b/cpus.c >> index 98f60f6f98f5..bb6bd8615cfc 100644 >> --- a/cpus.c >> +++ b/cpus.c >> @@ -932,6 +932,18 @@ static void qemu_tcg_destroy_vcpu(CPUState *cpu) >> { >> } >> >> +static void tcg_cpu_exec_start(CPUState *cpu) >> +{ >> + tcg_pending_cpus++; >> +} >> + >> +static void tcg_cpu_exec_end(CPUState *cpu) >> +{ >> + if (--tcg_pending_cpus) { >> + signal_cpu_work(); >> + } >> +} > Don't these need to be atomic?
'tcg_pending_cpus' is protected by BQL. > >> + >> static void qemu_wait_io_event_common(CPUState *cpu) >> { >> if (cpu->stop) { >> (snip) Thanks, Sergey