On 1 July 2013 10:35, Stefan Hajnoczi <stefa...@redhat.com> wrote: > From: Paolo Bonzini <pbonz...@redhat.com> > > The next patch will change qemu/tls.h to support more platforms, but at > some performance cost. Declare cpu_single_env directly instead of using > the tls.h abstractions. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > exec.c | 10 ++++++++-- > include/exec/cpu-all.h | 14 +++++++++++--- > include/qemu/tls.h | 52 > -------------------------------------------------- > 3 files changed, 19 insertions(+), 57 deletions(-) > delete mode 100644 include/qemu/tls.h > > diff --git a/exec.c b/exec.c > index c49806c..02263db 100644 > --- a/exec.c > +++ b/exec.c > @@ -70,9 +70,15 @@ static MemoryRegion io_mem_unassigned; > #endif > > CPUArchState *first_cpu; > + > /* current CPU in the current thread. It is only valid inside > - cpu_exec() */ > -DEFINE_TLS(CPUArchState *,cpu_single_env); > + * cpu_exec(). See comment in include/exec/cpu-all.h. */ > +#if defined CONFIG_KVM || (defined CONFIG_USER_ONLY && defined > CONFIG_USE_NPTL) > +__thread CPUArchState *cpu_single_env; > +#else > +CPUArchState *cpu_single_env; > +#endif
This is still wrong, as per my review comments on the previous version. -- PMM