[Qemu-devel] [PATCH 23/22] linux-user: Honor CLONE_SETTLS for openrisc

Richard Henderson posted 22 patches 9 years ago
[Qemu-devel] [PATCH 23/22] linux-user: Honor CLONE_SETTLS for openrisc
Posted by Richard Henderson 9 years ago
Threads work much better when you set the TLS register.
This was fixed in the upstream kernel for Linux 4.9.

Signed-off-by: Richard Henderson <rth@twiddle.net>
---
 linux-user/openrisc/target_cpu.h | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/linux-user/openrisc/target_cpu.h b/linux-user/openrisc/target_cpu.h
index a21ed1a..f283d96 100644
--- a/linux-user/openrisc/target_cpu.h
+++ b/linux-user/openrisc/target_cpu.h
@@ -30,9 +30,7 @@ static inline void cpu_clone_regs(CPUOpenRISCState *env, target_ulong newsp)
 
 static inline void cpu_set_tls(CPUOpenRISCState *env, target_ulong newtls)
 {
-    /* Linux kernel 3.10 does not pay any attention to CLONE_SETTLS
-     * in copy_thread(), so QEMU need not do so either.
-     */
+    env->gpr[10] = newtls;
 }
 
 #endif
-- 
2.9.3


Re: [Qemu-devel] [PATCH 23/22] linux-user: Honor CLONE_SETTLS for openrisc
Posted by Stafford Horne 8 years, 12 months ago
23/22 ?

:)

On Fri, Feb 10, 2017 at 10:01:22AM +1000, Richard Henderson wrote:
> Threads work much better when you set the TLS register.
> This was fixed in the upstream kernel for Linux 4.9.
> 
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
>  linux-user/openrisc/target_cpu.h | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/linux-user/openrisc/target_cpu.h b/linux-user/openrisc/target_cpu.h
> index a21ed1a..f283d96 100644
> --- a/linux-user/openrisc/target_cpu.h
> +++ b/linux-user/openrisc/target_cpu.h
> @@ -30,9 +30,7 @@ static inline void cpu_clone_regs(CPUOpenRISCState *env, target_ulong newsp)
>  
>  static inline void cpu_set_tls(CPUOpenRISCState *env, target_ulong newtls)
>  {
> -    /* Linux kernel 3.10 does not pay any attention to CLONE_SETTLS
> -     * in copy_thread(), so QEMU need not do so either.
> -     */
> +    env->gpr[10] = newtls;
>  }
>  
>  #endif
> -- 
> 2.9.3
> 

Reviewed-by: Stafford Horne <shorne@gmail.com>