[PULL 00/40] Bsd user arm 2022q1 patches

Warner Losh posted 40 patches 2 years, 3 months ago
Test checkpatch passed
Failed in applying to current master (apply log)
MAINTAINERS                           |    1 +
bsd-user/arm/signal.c                 |   59 +-
bsd-user/arm/target_arch_cpu.h        |  101 +--
bsd-user/freebsd/target_os_siginfo.h  |   15 +-
bsd-user/freebsd/target_os_signal.h   |    3 +
bsd-user/freebsd/target_os_ucontext.h |    6 +-
bsd-user/host/arm/host-signal.h       |   35 +
bsd-user/host/i386/host-signal.h      |   37 +
bsd-user/host/x86_64/host-signal.h    |   37 +
bsd-user/i386/signal.c                |   13 +
bsd-user/i386/target_arch_cpu.h       |    5 +-
bsd-user/main.c                       |   14 +-
bsd-user/qemu.h                       |   66 +-
bsd-user/signal-common.h              |   70 ++
bsd-user/signal.c                     | 1008 ++++++++++++++++++++++++-
bsd-user/strace.c                     |   97 +++
bsd-user/syscall_defs.h               |    1 +
bsd-user/trace-events                 |   11 +
bsd-user/trace.h                      |    1 +
bsd-user/x86_64/signal.c              |   13 +
bsd-user/x86_64/target_arch_cpu.h     |    5 +-
meson.build                           |    6 +-
22 files changed, 1490 insertions(+), 114 deletions(-)
create mode 100644 bsd-user/host/arm/host-signal.h
create mode 100644 bsd-user/host/i386/host-signal.h
create mode 100644 bsd-user/host/x86_64/host-signal.h
create mode 100644 bsd-user/signal-common.h
create mode 100644 bsd-user/trace-events
create mode 100644 bsd-user/trace.h
[PULL 00/40] Bsd user arm 2022q1 patches
Posted by Warner Losh 2 years, 3 months ago
The following changes since commit 7a1043cef91739ff4b59812d30f1ed2850d3d34e:

  Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2022-01-28 14:04:01 +0000)

are available in the Git repository at:

  git@gitlab.com:bsdimp/qemu.git tags/bsd-user-arm-2022q1-pull-request

for you to fetch changes up to 1103d59caaa82c94b4223a5429c31895d2f05217:

  bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for CPUArchState args (2022-01-30 17:13:50 -0700)

----------------------------------------------------------------
bsd-user: upstream signal implementation

Upstream the bsd-user fork signal implementation, for the most part.  This
series of commits represents nearly all of the infrastructure that surround
signals, except the actual system call glue (that was also reworked in the
fork and needs its own series). In addition, this adds the sigsegv and sigbus
code to arm. Even in the fork, we don't have good x86 signal implementation,
so there's little to upstream for that at the moment.

bsd-user's signal implementation is similar to linux-user's. The full context
can be found in the bsd-user's fork's 'blitz branch' at
https://github.com/qemu-bsd-user/qemu-bsd-user/tree/blitz which shows how these
are used to implement various system calls. Since this was built from
linux-user's stack stuff, evolved for BSD with the passage of a few years, it
no-doubt missed some bug fixes from linux-user (though nothing obvious stood out
in the quick comparison I made). After the first round of reviews, many of these
improvements have been incorporated.

Patchew history: https://patchew.org/QEMU/20220125012947.14974-1-imp@bsdimp.com/

----------------------------------------------------------------

Warner Losh (40):
  bsd-user: Complete FreeBSD siginfo
  bsd-user: Create setup_sigframe_arch to setup sigframe context
  bsd-user/arm/signal.c: Implement setup_sigframe_arch for arm
  bsd-user/arm/signal.c: get_mcontext should zero vfp data
  bsd-user: Remove vestiges of signal queueing code
  bsd-user: Bring in docs from linux-user for signal_pending
  bsd-user/arm/target_arch_cpu.h: Move EXCP_ATOMIC to match linux-user
  bsd-user/signal.c: implement force_sig_fault
  bsd-user/signal-common.h: Move signal functions prototypes to here
  bsd-user/signal.c: Implement cpu_loop_exit_sigsegv
  bsd-user/signal.c: implement cpu_loop_exit_sigbus
  bsd-user/arm/arget_arch_cpu.h: Move EXCP_DEBUG and EXCP_BKPT together
  bsd-user/arm/target_arch_cpu.h: Correct code pointer
  bsd-user/arm/target_arch_cpu.h: Use force_sig_fault for EXCP_UDEF
  bsd-user/arm/target_arch_cpu.h: Implement data faults
  bsd-user/signal.c: implement abstract target / host signal translation
  bsd-user/signal.c: Implement signal_init()
  bsd-user/signal.c: Add si_type argument to queue_signal
  bsd-user/host/arm/host-signal.h: Implement host_signal_*
  bsd-user/host/i386/host-signal.h: Implement host_signal_*
  bsd-user/host/x86_64/host-signal.h: Implement host_signal_*
  bsd-user: Add host signals to the build
  bsd-user: Add trace events for bsd-user
  bsd-user/signal.c: host_to_target_siginfo_noswap
  bsd-user/signal.c: Implement rewind_if_in_safe_syscall
  bsd-user/signal.c: Implement host_signal_handler
  bsd-user/strace.c: print_taken_signal
  bsd-user/signal.c: Implement dump_core_and_abort
  bsd-user/signal.c: Fill in queue_signal
  bsd-user/signal.c: sigset manipulation routines.
  bsd-user/signal.c: setup_frame
  bsd-user/signal.c: handle_pending_signal
  bsd-user/signal.c: tswap_siginfo
  bsd-user/signal.c: process_pending_signals
  bsd-user/signal.c: implement do_sigreturn
  bsd-user/signal.c: implement do_sigaction
  bsd-user/signal.c: do_sigaltstack
  MAINTAINERS: Add tests/vm/*bsd to the list to get reviews on
  bsd-user: Rename arg name for target_cpu_reset to env
  bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for
    CPUArchState args

 MAINTAINERS                           |    1 +
 bsd-user/arm/signal.c                 |   59 +-
 bsd-user/arm/target_arch_cpu.h        |  101 +--
 bsd-user/freebsd/target_os_siginfo.h  |   15 +-
 bsd-user/freebsd/target_os_signal.h   |    3 +
 bsd-user/freebsd/target_os_ucontext.h |    6 +-
 bsd-user/host/arm/host-signal.h       |   35 +
 bsd-user/host/i386/host-signal.h      |   37 +
 bsd-user/host/x86_64/host-signal.h    |   37 +
 bsd-user/i386/signal.c                |   13 +
 bsd-user/i386/target_arch_cpu.h       |    5 +-
 bsd-user/main.c                       |   14 +-
 bsd-user/qemu.h                       |   66 +-
 bsd-user/signal-common.h              |   70 ++
 bsd-user/signal.c                     | 1008 ++++++++++++++++++++++++-
 bsd-user/strace.c                     |   97 +++
 bsd-user/syscall_defs.h               |    1 +
 bsd-user/trace-events                 |   11 +
 bsd-user/trace.h                      |    1 +
 bsd-user/x86_64/signal.c              |   13 +
 bsd-user/x86_64/target_arch_cpu.h     |    5 +-
 meson.build                           |    6 +-
 22 files changed, 1490 insertions(+), 114 deletions(-)
 create mode 100644 bsd-user/host/arm/host-signal.h
 create mode 100644 bsd-user/host/i386/host-signal.h
 create mode 100644 bsd-user/host/x86_64/host-signal.h
 create mode 100644 bsd-user/signal-common.h
 create mode 100644 bsd-user/trace-events
 create mode 100644 bsd-user/trace.h

-- 
2.33.1


Re: [PULL 00/40] Bsd user arm 2022q1 patches
Posted by Peter Maydell 2 years, 3 months ago
On Mon, 31 Jan 2022 at 19:56, Warner Losh <imp@bsdimp.com> wrote:
>
> The following changes since commit 7a1043cef91739ff4b59812d30f1ed2850d3d34e:
>
>   Merge remote-tracking branch 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2022-01-28 14:04:01 +0000)
>
> are available in the Git repository at:
>
>   git@gitlab.com:bsdimp/qemu.git tags/bsd-user-arm-2022q1-pull-request
>
> for you to fetch changes up to 1103d59caaa82c94b4223a5429c31895d2f05217:
>
>   bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for CPUArchState args (2022-01-30 17:13:50 -0700)
>
> ----------------------------------------------------------------
> bsd-user: upstream signal implementation
>
> Upstream the bsd-user fork signal implementation, for the most part.  This
> series of commits represents nearly all of the infrastructure that surround
> signals, except the actual system call glue (that was also reworked in the
> fork and needs its own series). In addition, this adds the sigsegv and sigbus
> code to arm. Even in the fork, we don't have good x86 signal implementation,
> so there's little to upstream for that at the moment.
>
> bsd-user's signal implementation is similar to linux-user's. The full context
> can be found in the bsd-user's fork's 'blitz branch' at
> https://github.com/qemu-bsd-user/qemu-bsd-user/tree/blitz which shows how these
> are used to implement various system calls. Since this was built from
> linux-user's stack stuff, evolved for BSD with the passage of a few years, it
> no-doubt missed some bug fixes from linux-user (though nothing obvious stood out
> in the quick comparison I made). After the first round of reviews, many of these
> improvements have been incorporated.
>
> Patchew history: https://patchew.org/QEMU/20220125012947.14974-1-imp@bsdimp.com/
>



Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/7.0
for any user-visible changes.

-- PMM

Re: [PULL 00/40] Bsd user arm 2022q1 patches
Posted by Warner Losh 2 years, 3 months ago
On Tue, Feb 1, 2022 at 9:32 AM Peter Maydell <peter.maydell@linaro.org>
wrote:

> On Mon, 31 Jan 2022 at 19:56, Warner Losh <imp@bsdimp.com> wrote:
> >
> > The following changes since commit
> 7a1043cef91739ff4b59812d30f1ed2850d3d34e:
> >
> >   Merge remote-tracking branch
> 'remotes/bonzini-gitlab/tags/for-upstream' into staging (2022-01-28
> 14:04:01 +0000)
> >
> > are available in the Git repository at:
> >
> >   git@gitlab.com:bsdimp/qemu.git tags/bsd-user-arm-2022q1-pull-request
> >
> > for you to fetch changes up to 1103d59caaa82c94b4223a5429c31895d2f05217:
> >
> >   bsd-user/freebsd/target_os_ucontext.h: Prefer env as arg name for
> CPUArchState args (2022-01-30 17:13:50 -0700)
> >
> > ----------------------------------------------------------------
> > bsd-user: upstream signal implementation
> >
> > Upstream the bsd-user fork signal implementation, for the most part.
> This
> > series of commits represents nearly all of the infrastructure that
> surround
> > signals, except the actual system call glue (that was also reworked in
> the
> > fork and needs its own series). In addition, this adds the sigsegv and
> sigbus
> > code to arm. Even in the fork, we don't have good x86 signal
> implementation,
> > so there's little to upstream for that at the moment.
> >
> > bsd-user's signal implementation is similar to linux-user's. The full
> context
> > can be found in the bsd-user's fork's 'blitz branch' at
> > https://github.com/qemu-bsd-user/qemu-bsd-user/tree/blitz which shows
> how these
> > are used to implement various system calls. Since this was built from
> > linux-user's stack stuff, evolved for BSD with the passage of a few
> years, it
> > no-doubt missed some bug fixes from linux-user (though nothing obvious
> stood out
> > in the quick comparison I made). After the first round of reviews, many
> of these
> > improvements have been incorporated.
> >
> > Patchew history:
> https://patchew.org/QEMU/20220125012947.14974-1-imp@bsdimp.com/
> >
>
>
>
> Applied, thanks.
>
> Please update the changelog at https://wiki.qemu.org/ChangeLog/7.0
> for any user-visible changes.
>

There was a testing escape, so please see

[PATCH] bsd-user/signal.c: Only copy the _capsicum for FreeBSD_version >
1400026

that I just posted to fix the build on older FreeBSD systems.

Warner