[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-4.1] linux-user: Make sigaltstack stacks per
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH for-4.1] linux-user: Make sigaltstack stacks per-thread |
Date: |
Thu, 25 Jul 2019 07:33:31 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 |
On 7/25/19 6:16 AM, Peter Maydell wrote:
> The alternate signal stack set up by the sigaltstack syscall is
> supposed to be per-thread. We were incorrectly implementing it as
> process-wide. This causes problems for guest binaries that rely on
> this. Notably the Go runtime does, and so we were seeing crashes
> caused by races where two guest threads might incorrectly both
> execute on the same stack simultaneously.
>
> Replace the global target_sigaltstack_used with a field
> sigaltstack_used in the TaskState, and make all the references to the
> old global instead get a pointer to the TaskState and use the field.
>
> Fixes: https://bugs.launchpad.net/qemu/+bug/1696773
> Signed-off-by: Peter Maydell <address@hidden>
> ---
Reviewed-by: Richard Henderson <address@hidden>
r~