diff mbox series

[08/21] linux-user/hppa: Document non-use of setup_sigtramp

Message ID 20210616011209.1446045-9-richard.henderson@linaro.org
State Superseded
Headers show
Series linux-user: Move signal trampolines to new page | expand

Commit Message

Richard Henderson June 16, 2021, 1:11 a.m. UTC
We cannot use a raw sigtramp page for hppa,
but must wait for full vdso support.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

---
 linux-user/hppa/target_signal.h | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

-- 
2.25.1

Comments

Philippe Mathieu-Daudé June 16, 2021, 10:46 a.m. UTC | #1
+Helge

On 6/16/21 3:11 AM, Richard Henderson wrote:
> We cannot use a raw sigtramp page for hppa,

> but must wait for full vdso support.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> ---

>  linux-user/hppa/target_signal.h | 14 ++++++++++++++

>  1 file changed, 14 insertions(+)

> 

> diff --git a/linux-user/hppa/target_signal.h b/linux-user/hppa/target_signal.h

> index 7f525362e9..d558119ee7 100644

> --- a/linux-user/hppa/target_signal.h

> +++ b/linux-user/hppa/target_signal.h

> @@ -71,4 +71,18 @@ typedef struct target_sigaltstack {

>  /* mask for all SS_xxx flags */

>  #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM

>  

> +/*

> + * We cannot use a bare sigtramp page for hppa-linux.

> + *

> + * Unlike other guests where we use the instructions at PC to validate

> + * an offset from SP, the hppa libgcc signal frame fallback unwinding uses

> + * the PC address itself to find the frame.  This is due to the fact that

> + * the hppa grows the stack upward, and the frame is of unknown size.

> + *

> + * TODO: We should be able to use a VDSO to address this, by providing

> + * proper unwind info for the sigtramp code, at which point the fallback

> + * unwinder will not be used.

> + */

> +#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0

> +

>  #endif /* HPPA_TARGET_SIGNAL_H */

> 


Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Alex Bennée June 16, 2021, 9:16 p.m. UTC | #2
Richard Henderson <richard.henderson@linaro.org> writes:

> We cannot use a raw sigtramp page for hppa,

> but must wait for full vdso support.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Reviewed-by: Alex Bennée <alex.bennee@linaro.org>


> ---

>  linux-user/hppa/target_signal.h | 14 ++++++++++++++

>  1 file changed, 14 insertions(+)

>

> diff --git a/linux-user/hppa/target_signal.h b/linux-user/hppa/target_signal.h

> index 7f525362e9..d558119ee7 100644

> --- a/linux-user/hppa/target_signal.h

> +++ b/linux-user/hppa/target_signal.h

> @@ -71,4 +71,18 @@ typedef struct target_sigaltstack {

>  /* mask for all SS_xxx flags */

>  #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM

>  

> +/*

> + * We cannot use a bare sigtramp page for hppa-linux.

> + *

> + * Unlike other guests where we use the instructions at PC to validate

> + * an offset from SP, the hppa libgcc signal frame fallback unwinding uses

> + * the PC address itself to find the frame.  This is due to the fact that

> + * the hppa grows the stack upward, and the frame is of unknown size.

> + *

> + * TODO: We should be able to use a VDSO to address this, by providing

> + * proper unwind info for the sigtramp code, at which point the fallback

> + * unwinder will not be used.

> + */

> +#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0

> +

>  #endif /* HPPA_TARGET_SIGNAL_H */



-- 
Alex Bennée
diff mbox series

Patch

diff --git a/linux-user/hppa/target_signal.h b/linux-user/hppa/target_signal.h
index 7f525362e9..d558119ee7 100644
--- a/linux-user/hppa/target_signal.h
+++ b/linux-user/hppa/target_signal.h
@@ -71,4 +71,18 @@  typedef struct target_sigaltstack {
 /* mask for all SS_xxx flags */
 #define TARGET_SS_FLAG_BITS  TARGET_SS_AUTODISARM
 
+/*
+ * We cannot use a bare sigtramp page for hppa-linux.
+ *
+ * Unlike other guests where we use the instructions at PC to validate
+ * an offset from SP, the hppa libgcc signal frame fallback unwinding uses
+ * the PC address itself to find the frame.  This is due to the fact that
+ * the hppa grows the stack upward, and the frame is of unknown size.
+ *
+ * TODO: We should be able to use a VDSO to address this, by providing
+ * proper unwind info for the sigtramp code, at which point the fallback
+ * unwinder will not be used.
+ */
+#define TARGET_ARCH_HAS_SIGTRAMP_PAGE 0
+
 #endif /* HPPA_TARGET_SIGNAL_H */