[PATCH v5 00/26] linux-user: Move signal trampolines to new page

Richard Henderson posted 26 patches 2 years, 7 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20210929130553.121567-1-richard.henderson@linaro.org
Maintainers: Cornelia Huck <cohuck@redhat.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, "Alex Bennée" <alex.bennee@linaro.org>, Laurent Vivier <laurent@vivier.eu>, Aurelien Jarno <aurelien@aurel32.net>, Richard Henderson <richard.henderson@linaro.org>, Thomas Huth <thuth@redhat.com>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Eduardo Habkost <ehabkost@redhat.com>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Paolo Bonzini <pbonzini@redhat.com>
linux-user/aarch64/target_signal.h    |   2 +
linux-user/alpha/target_signal.h      |   1 +
linux-user/arm/target_signal.h        |   2 +
linux-user/cris/target_signal.h       |   2 +
linux-user/hexagon/target_signal.h    |   2 +
linux-user/hppa/target_signal.h       |  14 +
linux-user/i386/target_signal.h       |   2 +
linux-user/m68k/target_signal.h       |   2 +
linux-user/microblaze/target_signal.h |   2 +
linux-user/mips/target_signal.h       |   1 +
linux-user/mips64/target_signal.h     |   2 +
linux-user/nios2/target_signal.h      |   3 +
linux-user/openrisc/target_signal.h   |   2 +
linux-user/ppc/target_signal.h        |   2 +
linux-user/riscv/target_signal.h      |   2 +
linux-user/s390x/target_signal.h      |   2 +
linux-user/sh4/target_signal.h        |   2 +
linux-user/signal-common.h            |   6 +
linux-user/sparc/target_signal.h      |   4 +
linux-user/x86_64/target_signal.h     |   3 +
linux-user/xtensa/target_signal.h     |   2 +
linux-user/aarch64/signal.c           |  34 +-
linux-user/alpha/signal.c             |  34 +-
linux-user/arm/signal.c               | 580 +++++++++-----------------
linux-user/cris/signal.c              |  29 +-
linux-user/elfload.c                  |  14 +
linux-user/hexagon/signal.c           |  19 +-
linux-user/i386/signal.c              |  65 ++-
linux-user/m68k/signal.c              |  47 +--
linux-user/microblaze/signal.c        |  24 +-
linux-user/mips/signal.c              |  39 +-
linux-user/openrisc/signal.c          |  22 +-
linux-user/ppc/signal.c               |  40 +-
linux-user/riscv/signal.c             |  22 +-
linux-user/s390x/signal.c             |  24 +-
linux-user/sh4/signal.c               |  40 +-
linux-user/signal.c                   |   3 +
linux-user/sparc/signal.c             |  40 +-
linux-user/xtensa/signal.c            |  56 ++-
tests/tcg/hppa/Makefile.target        |   7 +
tests/tcg/i386/Makefile.target        |   3 -
tests/tcg/multiarch/Makefile.target   |   8 -
tests/tcg/sh4/Makefile.target         |   7 +
43 files changed, 613 insertions(+), 604 deletions(-)
[PATCH v5 00/26] linux-user: Move signal trampolines to new page
Posted by Richard Henderson 2 years, 7 months ago
Changes for v5:
  * Fix arm thumb code copy.
  * Re-enable signals test (except hppa & sh4).

Changes for v4:
  * Drop nios2 changes -- I still haven't built a full toolchain.
  * Clean up arm changes.
  * Minur i386 pointer type changes.

Changes for v3:
  * Drop vdsos, reinstate setup_sigtramp for all targets.
  * Incorporate nios2 kuser page emulation, which contains
    the sigtramp for that target.

Changes for v2:
  * Add vdsos for aarch64, arm, i386, riscv.
  * Drop setup_sigtramp for any target with a vdso.
  * Drop arm v1 signal support.
  * Simplify ppc encode_trampoline.


r~

Richard Henderson (26):
  linux-user: Add infrastructure for a signal trampoline page
  linux-user/aarch64: Implement setup_sigtramp
  linux-user/arm: Drop v1 signal frames
  linux-user/arm: Drop "_v2" from symbols in signal.c
  linux-user/arm: Implement setup_sigtramp
  linux-user/alpha: Implement setup_sigtramp
  linux-user/cris: Implement setup_sigtramp
  linux-user/hexagon: Implement setup_sigtramp
  linux-user/hppa: Document non-use of setup_sigtramp
  linux-user/i386: Implement setup_sigtramp
  linux-user/x86_64: Raise SIGSEGV if SA_RESTORER not set
  linux-user/m68k: Implement setup_sigtramp
  linux-user/microblaze: Implement setup_sigtramp
  linux-user/mips: Tidy install_sigtramp
  linux-user/mips: Implement setup_sigtramp
  linux-user/nios2: Document non-use of setup_sigtramp
  linux-user/openrisc: Implement setup_sigtramp
  linux-user/ppc: Simplify encode_trampoline
  linux-user/ppc: Implement setup_sigtramp
  linux-user/riscv: Implement setup_sigtramp
  linux-user/s390x: Implement setup_sigtramp
  linux-user/sh4: Implement setup_sigtramp
  linux-user/sparc: Implement setup_sigtramp
  linux-user/xtensa: Implement setup_sigtramp
  linux-user: Remove default for TARGET_ARCH_HAS_SIGTRAMP_PAGE
  tests/tcg/multiarch: Re-enable signals test for most guests

 linux-user/aarch64/target_signal.h    |   2 +
 linux-user/alpha/target_signal.h      |   1 +
 linux-user/arm/target_signal.h        |   2 +
 linux-user/cris/target_signal.h       |   2 +
 linux-user/hexagon/target_signal.h    |   2 +
 linux-user/hppa/target_signal.h       |  14 +
 linux-user/i386/target_signal.h       |   2 +
 linux-user/m68k/target_signal.h       |   2 +
 linux-user/microblaze/target_signal.h |   2 +
 linux-user/mips/target_signal.h       |   1 +
 linux-user/mips64/target_signal.h     |   2 +
 linux-user/nios2/target_signal.h      |   3 +
 linux-user/openrisc/target_signal.h   |   2 +
 linux-user/ppc/target_signal.h        |   2 +
 linux-user/riscv/target_signal.h      |   2 +
 linux-user/s390x/target_signal.h      |   2 +
 linux-user/sh4/target_signal.h        |   2 +
 linux-user/signal-common.h            |   6 +
 linux-user/sparc/target_signal.h      |   4 +
 linux-user/x86_64/target_signal.h     |   3 +
 linux-user/xtensa/target_signal.h     |   2 +
 linux-user/aarch64/signal.c           |  34 +-
 linux-user/alpha/signal.c             |  34 +-
 linux-user/arm/signal.c               | 580 +++++++++-----------------
 linux-user/cris/signal.c              |  29 +-
 linux-user/elfload.c                  |  14 +
 linux-user/hexagon/signal.c           |  19 +-
 linux-user/i386/signal.c              |  65 ++-
 linux-user/m68k/signal.c              |  47 +--
 linux-user/microblaze/signal.c        |  24 +-
 linux-user/mips/signal.c              |  39 +-
 linux-user/openrisc/signal.c          |  22 +-
 linux-user/ppc/signal.c               |  40 +-
 linux-user/riscv/signal.c             |  22 +-
 linux-user/s390x/signal.c             |  24 +-
 linux-user/sh4/signal.c               |  40 +-
 linux-user/signal.c                   |   3 +
 linux-user/sparc/signal.c             |  40 +-
 linux-user/xtensa/signal.c            |  56 ++-
 tests/tcg/hppa/Makefile.target        |   7 +
 tests/tcg/i386/Makefile.target        |   3 -
 tests/tcg/multiarch/Makefile.target   |   8 -
 tests/tcg/sh4/Makefile.target         |   7 +
 43 files changed, 613 insertions(+), 604 deletions(-)

-- 
2.25.1


Re: [PATCH v5 00/26] linux-user: Move signal trampolines to new page
Posted by Laurent Vivier 2 years, 7 months ago
Le 29/09/2021 à 15:05, Richard Henderson a écrit :
> Changes for v5:
>   * Fix arm thumb code copy.
>   * Re-enable signals test (except hppa & sh4).
> 
> Changes for v4:
>   * Drop nios2 changes -- I still haven't built a full toolchain.
>   * Clean up arm changes.
>   * Minur i386 pointer type changes.
> 
> Changes for v3:
>   * Drop vdsos, reinstate setup_sigtramp for all targets.
>   * Incorporate nios2 kuser page emulation, which contains
>     the sigtramp for that target.
> 
> Changes for v2:
>   * Add vdsos for aarch64, arm, i386, riscv.
>   * Drop setup_sigtramp for any target with a vdso.
>   * Drop arm v1 signal support.
>   * Simplify ppc encode_trampoline.
> 
> 
> r~
> 
> Richard Henderson (26):
>   linux-user: Add infrastructure for a signal trampoline page
>   linux-user/aarch64: Implement setup_sigtramp
>   linux-user/arm: Drop v1 signal frames
>   linux-user/arm: Drop "_v2" from symbols in signal.c
>   linux-user/arm: Implement setup_sigtramp
>   linux-user/alpha: Implement setup_sigtramp
>   linux-user/cris: Implement setup_sigtramp
>   linux-user/hexagon: Implement setup_sigtramp
>   linux-user/hppa: Document non-use of setup_sigtramp
>   linux-user/i386: Implement setup_sigtramp
>   linux-user/x86_64: Raise SIGSEGV if SA_RESTORER not set
>   linux-user/m68k: Implement setup_sigtramp
>   linux-user/microblaze: Implement setup_sigtramp
>   linux-user/mips: Tidy install_sigtramp
>   linux-user/mips: Implement setup_sigtramp
>   linux-user/nios2: Document non-use of setup_sigtramp
>   linux-user/openrisc: Implement setup_sigtramp
>   linux-user/ppc: Simplify encode_trampoline
>   linux-user/ppc: Implement setup_sigtramp
>   linux-user/riscv: Implement setup_sigtramp
>   linux-user/s390x: Implement setup_sigtramp
>   linux-user/sh4: Implement setup_sigtramp
>   linux-user/sparc: Implement setup_sigtramp
>   linux-user/xtensa: Implement setup_sigtramp
>   linux-user: Remove default for TARGET_ARCH_HAS_SIGTRAMP_PAGE
>   tests/tcg/multiarch: Re-enable signals test for most guests
> 
>  linux-user/aarch64/target_signal.h    |   2 +
>  linux-user/alpha/target_signal.h      |   1 +
>  linux-user/arm/target_signal.h        |   2 +
>  linux-user/cris/target_signal.h       |   2 +
>  linux-user/hexagon/target_signal.h    |   2 +
>  linux-user/hppa/target_signal.h       |  14 +
>  linux-user/i386/target_signal.h       |   2 +
>  linux-user/m68k/target_signal.h       |   2 +
>  linux-user/microblaze/target_signal.h |   2 +
>  linux-user/mips/target_signal.h       |   1 +
>  linux-user/mips64/target_signal.h     |   2 +
>  linux-user/nios2/target_signal.h      |   3 +
>  linux-user/openrisc/target_signal.h   |   2 +
>  linux-user/ppc/target_signal.h        |   2 +
>  linux-user/riscv/target_signal.h      |   2 +
>  linux-user/s390x/target_signal.h      |   2 +
>  linux-user/sh4/target_signal.h        |   2 +
>  linux-user/signal-common.h            |   6 +
>  linux-user/sparc/target_signal.h      |   4 +
>  linux-user/x86_64/target_signal.h     |   3 +
>  linux-user/xtensa/target_signal.h     |   2 +
>  linux-user/aarch64/signal.c           |  34 +-
>  linux-user/alpha/signal.c             |  34 +-
>  linux-user/arm/signal.c               | 580 +++++++++-----------------
>  linux-user/cris/signal.c              |  29 +-
>  linux-user/elfload.c                  |  14 +
>  linux-user/hexagon/signal.c           |  19 +-
>  linux-user/i386/signal.c              |  65 ++-
>  linux-user/m68k/signal.c              |  47 +--
>  linux-user/microblaze/signal.c        |  24 +-
>  linux-user/mips/signal.c              |  39 +-
>  linux-user/openrisc/signal.c          |  22 +-
>  linux-user/ppc/signal.c               |  40 +-
>  linux-user/riscv/signal.c             |  22 +-
>  linux-user/s390x/signal.c             |  24 +-
>  linux-user/sh4/signal.c               |  40 +-
>  linux-user/signal.c                   |   3 +
>  linux-user/sparc/signal.c             |  40 +-
>  linux-user/xtensa/signal.c            |  56 ++-
>  tests/tcg/hppa/Makefile.target        |   7 +
>  tests/tcg/i386/Makefile.target        |   3 -
>  tests/tcg/multiarch/Makefile.target   |   8 -
>  tests/tcg/sh4/Makefile.target         |   7 +
>  43 files changed, 613 insertions(+), 604 deletions(-)
> 

Applied to my linux-user-for-6.2 branch.

Thanks,
Laurent