qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/2] Make cpu_single_env thread-local


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 2/2] Make cpu_single_env thread-local
Date: Wed, 26 Oct 2011 18:20:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0.1) Gecko/20110929 Thunderbird/7.0.1

Am 26.10.2011 18:07, schrieb Peter Maydell:
> From: Paolo Bonzini <address@hidden>
> 
> Make cpu_single_env thread-local. This fixes a regression
> in handling of multi-threaded programs in linux-user mode
> (bug 823902).
> 
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  cpu-all.h          |    4 +++-
>  darwin-user/main.c |    2 --
>  exec.c             |    2 +-
>  3 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/cpu-all.h b/cpu-all.h
> index 42a5fa0..e37ebfc 100644
> --- a/cpu-all.h
> +++ b/cpu-all.h
> @@ -20,6 +20,7 @@
>  #define CPU_ALL_H
>  
>  #include "qemu-common.h"
> +#include "qemu-tls.h"
>  #include "cpu-common.h"
>  
>  /* some important defines:
> @@ -334,7 +335,8 @@ void cpu_dump_statistics(CPUState *env, FILE *f, 
> fprintf_function cpu_fprintf,
>  void QEMU_NORETURN cpu_abort(CPUState *env, const char *fmt, ...)
>      GCC_FMT_ATTR(2, 3);
>  extern CPUState *first_cpu;
> -extern CPUState *cpu_single_env;
> +DECLARE_TLS(CPUState *,tls_cpu_single_env);

So this effectively becomes tls__tls_cpu_single_env iiuc.
For compile-checking for missed conversions,

DECLARE_TLS(CPUState *,cpu_single_env);

should do, no?

> diff --git a/darwin-user/main.c b/darwin-user/main.c
> index 1a881a0..c0f14f8 100644
> --- a/darwin-user/main.c
> +++ b/darwin-user/main.c
> @@ -729,8 +729,6 @@ static void usage(void)
>  
>  /* XXX: currently only used for async signals (see signal.c) */
>  CPUState *global_env;
> -/* used only if single thread */
> -CPUState *cpu_single_env = NULL;
>  
>  /* used to free thread contexts */
>  TaskState *first_task_state;

This is not making anything local, it's apparently removing an unused
variable. Can we then have that in a patch saying so, please?

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

[Prev in Thread] Current Thread [Next in Thread]