All of lore.kernel.org
 help / color / mirror / Atom feed
From: Warner Losh <imp@bsdimp.com>
To: Richard Henderson <richard.henderson@linaro.org>
Cc: Stacey Son <sson@freebsd.org>,
	QEMU Trivial <qemu-trivial@nongnu.org>,
	Kyle Evans <kevans@freebsd.org>, Michael Tokarev <mjt@tls.msk.ru>,
	QEMU Developers <qemu-devel@nongnu.org>,
	Laurent Vivier <laurent@vivier.eu>
Subject: Re: [PATCH 19/24] bsd-user/arm/target_arch_signal.h: arm user context and trapframe for signals
Date: Fri, 29 Oct 2021 20:44:14 -0600	[thread overview]
Message-ID: <CANCZdfp8=oTggTcZBx72e6ajm_bdfgrdeJgSeRpz5G3Ua8Fkog@mail.gmail.com> (raw)
In-Reply-To: <63da2085-b7f7-52ac-6673-b91c211b4c62@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 2959 bytes --]

On Thu, Oct 28, 2021 at 11:22 AM Richard Henderson <
richard.henderson@linaro.org> wrote:

> On 10/19/21 9:44 AM, Warner Losh wrote:
> > Arm specific user context structures for signal handling and the closely
> > related trap frame.
> >
> > Signed-off-by: Stacey Son <sson@FreeBSD.org>
> > Signed-off-by: Warner Losh <imp@bsdimp.com>
> > ---
> >   bsd-user/arm/target_arch_signal.h | 38 +++++++++++++++++++++++++++++++
> >   1 file changed, 38 insertions(+)
> >
> > diff --git a/bsd-user/arm/target_arch_signal.h
> b/bsd-user/arm/target_arch_signal.h
> > index 9fee58ca9c..67355ff28f 100644
> > --- a/bsd-user/arm/target_arch_signal.h
> > +++ b/bsd-user/arm/target_arch_signal.h
> > @@ -90,4 +90,42 @@ typedef struct target_mcontext {
> >       } __fpu;
> >   } target_mcontext_t;
> >
> > +typedef struct target_ucontext {
> > +    target_sigset_t     uc_sigmask;
> > +    target_mcontext_t   uc_mcontext;
> > +    abi_ulong           uc_link;
> > +    target_stack_t      uc_stack;
> > +    int32_t             uc_flags;
> > +    int32_t             __spare__[4];
> > +} target_ucontext_t;
>
> This is from the common <sys/_ucontext.h>.  Is there any way we can share
> that here in
> qemu as well?
>

That's a good idea.


> > +struct target_sigframe {
> > +    target_siginfo_t    sf_si;  /* saved siginfo */
> > +    target_ucontext_t   sf_uc;  /* saved ucontext */
> > +};
>
> You're missing the storage for
>    mcontext_vfp_t  sf_vfp
>
the address of which goes in mcontext_t.mc_vfp_ptr


Added.


> (which isn't in the version of
> mcontext_t from patch 18).
>

Added to my revised patch 18.


> > +/* compare to sys/arm/include/frame.h */
> > +struct target_trapframe {
> > +    abi_ulong tf_spsr; /* Zero on arm26 */
> > +    abi_ulong tf_r0;
> > +    abi_ulong tf_r1;
> > +    abi_ulong tf_r2;
> > +    abi_ulong tf_r3;
> > +    abi_ulong tf_r4;
> > +    abi_ulong tf_r5;
> > +    abi_ulong tf_r6;
> > +    abi_ulong tf_r7;
> > +    abi_ulong tf_r8;
> > +    abi_ulong tf_r9;
> > +    abi_ulong tf_r10;
> > +    abi_ulong tf_r11;
> > +    abi_ulong tf_r12;
> > +    abi_ulong tf_usr_sp;
> > +    abi_ulong tf_usr_lr;
> > +    abi_ulong tf_svc_sp; /* Not used on arm26 */
> > +    abi_ulong tf_svc_lr; /* Not used on arm26 */
> > +    abi_ulong tf_pc;
> > +};
>
> This is not used by the user abi for signals.  It is a kernel structure
> for its own
> internal trap handling.  Why are you including it?
>

This code pre-dates my time... But I think it was included because the code
in target_arch_thread.h in patch 13 took its size.  But it turns out that's
bogus too. It
accidentally gets things aligned correctly, but should just be removed with
this struct as well. The kernel doesn't use it.

What's worse, ppc, aarch64 and riscv all copied this bogus trope :(. At
least I'll have a chance to fix it before you see it...

I've updated x86 that's upstream in my patch series as well... I'll send it
out Monday or maybe over the weekend.

Warner

[-- Attachment #2: Type: text/html, Size: 4633 bytes --]

  reply	other threads:[~2021-10-30  2:46 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-19 16:44 [PATCH 00/24] bsd-user: arm (32-bit) support Warner Losh
2021-10-19 16:44 ` [PATCH 01/24] bsd-user/arm/target_arch_sysarch.h: Use consistent include guards Warner Losh
2021-10-23  7:29   ` Kyle Evans
2021-10-28 15:08   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 02/24] bsd-user/arm/target_syscall.h: Add copyright and update name Warner Losh
2021-10-23  7:30   ` Kyle Evans
2021-10-28 15:08   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 03/24] bsd-user/arm/target_arch_cpu.c: Target specific TLS routines Warner Losh
2021-10-23  7:30   ` Kyle Evans
2021-10-28 15:08   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 04/24] bsd-user/arm/target_arch_cpu.h: CPU Loop definitions Warner Losh
2021-10-23  7:31   ` Kyle Evans
2021-10-28 15:14   ` Richard Henderson
2021-10-28 17:36     ` Warner Losh
2021-10-19 16:44 ` [PATCH 05/24] bsd-user/arm/target_arch_cpu.h: Implement target_cpu_clone_regs Warner Losh
2021-10-23  7:31   ` Kyle Evans
2021-10-28 15:15   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 06/24] bsd-user/arm/target_arch_cpu.h: Dummy target_cpu_loop implementation Warner Losh
2021-10-23  7:32   ` Kyle Evans
2021-10-28 15:15   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 07/24] bsd-user/arm/target_arch_cpu.h: Implment trivial EXCP exceptions Warner Losh
2021-10-26  5:52   ` Kyle Evans
2021-10-28 15:19   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 08/24] bsd-user/arm/target_arch_cpu.h: Implement data abort exceptions Warner Losh
2021-10-26  5:47   ` Kyle Evans
2021-10-28 15:29   ` Richard Henderson
2021-10-28 16:56     ` Warner Losh
2021-10-19 16:44 ` [PATCH 09/24] bsd-user/arm/target_arch_cpu.h: Implement system call dispatch Warner Losh
2021-10-23  7:33   ` Kyle Evans
2021-10-23 15:17     ` Warner Losh
2021-10-28 15:35   ` Richard Henderson
2021-10-28 17:56     ` Warner Losh
2021-10-19 16:44 ` [PATCH 10/24] bsd-user/arm/target_arch_reg.h: Implement core dump register copying Warner Losh
2021-10-26  5:48   ` Kyle Evans
2021-10-28 15:36   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 11/24] bsd-user/arm/target_arch_vmparam.h: Parameters for arm address space Warner Losh
2021-10-26  5:52   ` Kyle Evans
2021-10-28 15:37   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 12/24] bsd-user/arm/target_arch_sigtramp.h: Signal Trampoline for arm Warner Losh
2021-10-26  5:51   ` Kyle Evans
2021-10-28 15:42   ` Richard Henderson
2021-10-28 19:35     ` Warner Losh
2021-10-19 16:44 ` [PATCH 13/24] bsd-user/arm/target_arch_thread.h: Routines to create and switch to a thread Warner Losh
2021-10-26  6:01   ` Kyle Evans
2021-10-26  6:11     ` Kyle Evans
2021-10-27 15:35       ` Warner Losh
2021-10-27 15:40         ` Kyle Evans
2021-10-28 15:57   ` Richard Henderson
2021-10-28 19:45     ` Warner Losh
2021-10-29 16:06       ` Richard Henderson
2021-10-19 16:44 ` [PATCH 14/24] bsd-user/arm/target_arch_elf.h: arm defines for ELF Warner Losh
2021-10-26  6:07   ` Kyle Evans
2021-10-28 16:02   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 15/24] bsd-user/arm/target_arch_elf.h: arm get hwcap Warner Losh
2021-10-26  6:02   ` Kyle Evans
2021-10-28 16:06   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 16/24] bsd-user/arm/target_arch_elf.h: arm get_hwcap2 impl Warner Losh
2021-10-26  6:02   ` Kyle Evans
2021-10-28 16:08   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 17/24] bsd-user/arm/target_arch_signal.h: arm specific signal registers and stack Warner Losh
2021-10-26  6:03   ` Kyle Evans
2021-10-28 16:18   ` Richard Henderson
2021-10-28 16:48     ` Warner Losh
2021-10-19 16:44 ` [PATCH 18/24] bsd-user/arm/target_arch_signal.h: arm machine context for signals Warner Losh
2021-10-26  6:03   ` Kyle Evans
2021-10-28 17:04   ` Richard Henderson
2021-10-28 17:18   ` Richard Henderson
2021-10-28 20:16     ` Warner Losh
2021-10-19 16:44 ` [PATCH 19/24] bsd-user/arm/target_arch_signal.h: arm user context and trapframe " Warner Losh
2021-10-26  6:07   ` Kyle Evans
2021-10-27 15:48     ` Warner Losh
2021-10-28 17:22   ` Richard Henderson
2021-10-30  2:44     ` Warner Losh [this message]
2021-10-19 16:44 ` [PATCH 20/24] bsd-user/arm/target_arch_signal.h: arm set_sigtramp_args Warner Losh
2021-10-26  6:10   ` Kyle Evans
2021-10-28 17:25   ` Richard Henderson
2021-10-28 17:35     ` Kyle Evans
2021-10-28 22:22       ` Warner Losh
2021-10-28 22:41     ` Warner Losh
2021-10-30  2:47       ` Warner Losh
2021-10-19 16:44 ` [PATCH 21/24] bsd-user/arm/target_arch_signal.h: arm get_mcontext Warner Losh
2021-10-26  6:08   ` Kyle Evans
2021-10-28 17:27   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 22/24] bsd-user/arm/target_arch_signal.h: arm set_mcontext Warner Losh
2021-10-26  6:12   ` Kyle Evans
2021-10-28 17:53   ` Richard Henderson
2021-10-29  0:07     ` Warner Losh
2021-10-29  4:34       ` Warner Losh
2021-10-28 17:57   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 23/24] bsd-user/arm/target_arch_signal.h: arm get_ucontext_sigreturn Warner Losh
2021-10-26  6:12   ` Kyle Evans
2021-10-28 17:59   ` Richard Henderson
2021-10-19 16:44 ` [PATCH 24/24] bsd-user: add arm target build Warner Losh
2021-10-26  6:21   ` Kyle Evans
2021-10-28 18:02     ` Richard Henderson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CANCZdfp8=oTggTcZBx72e6ajm_bdfgrdeJgSeRpz5G3Ua8Fkog@mail.gmail.com' \
    --to=imp@bsdimp.com \
    --cc=kevans@freebsd.org \
    --cc=laurent@vivier.eu \
    --cc=mjt@tls.msk.ru \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-trivial@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=sson@freebsd.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.