On 12 August 2015 at 17:40, Paolo Bonzini <pbonz...@redhat.com> wrote: > From: KONRAD Frederic <fred.kon...@greensocs.com> > > This removes tcg_halt_cond global variable. > We need one QemuCond per virtual cpu for multithread TCG. > > Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> > Message-Id: <1439220437-23957-9-git-send-email-fred.kon...@greensocs.com> > [Keep tcg_halt_cond for bisectability, while making it static. - Paolo] > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > cpus.c | 12 +++++------- > 1 file changed, 5 insertions(+), 7 deletions(-) > > diff --git a/cpus.c b/cpus.c > index 9224488..8884278 100644 > --- a/cpus.c > +++ b/cpus.c > @@ -813,7 +813,6 @@ static unsigned iothread_requesting_mutex; > static QemuThread io_thread; > > static QemuThread *tcg_cpu_thread; > -static QemuCond *tcg_halt_cond; >
> @@ -1265,6 +1262,7 @@ void resume_all_vcpus(void) > static void qemu_tcg_init_vcpu(CPUState *cpu) > { > char thread_name[VCPU_THREAD_NAME_SIZE]; > + static QemuCond *tcg_halt_cond; > > tcg_cpu_address_space_init(cpu, cpu->as); With this patch, code-wise tcg_halt_cond and tcg_cpu_thread are used in pretty much parallel ways (first call into qemu_tcg_init_vcpu() sets them up, all the rest just copy them into the CPU struct). The only difference is that one of them a static at file scope and the other one is a static at function scope. It seems a shame to not have them be exactly parallel... thanks -- PMM