mbox series

[v5,00/12] Implement Most ARMv8.3 Pointer Authentication Features

Message ID 20230829232335.965414-1-richard.henderson@linaro.org
Headers show
Series Implement Most ARMv8.3 Pointer Authentication Features | expand

Message

Richard Henderson Aug. 29, 2023, 11:23 p.m. UTC
Changes for v5:
  * Updates for review.
  * Include linux-user ESR changes.

Patch 10 is the only one without review.


r~


Aaron Lindsay (6):
  target/arm: Add ID_AA64ISAR2_EL1
  target/arm: Add feature detection for FEAT_Pauth2 and extensions
  target/arm: Implement FEAT_EPAC
  target/arm: Implement FEAT_Pauth2
  targer/arm: Inform helpers whether a PAC instruction is 'combined'
  target/arm: Implement FEAT_FPAC and FEAT_FPACCOMBINE

Richard Henderson (6):
  tests/tcg/aarch64: Adjust pauth tests for FEAT_FPAC
  target/arm: Don't change pauth features when changing algorithm
  target/arm: Implement FEAT_PACQARMA3
  linux-user/aarch64: Add ESR signal frame for SIGSEGV, SIGBUS
  linux-user/aarch64: Fix normal SIGILL si_code
  linux-user/aarch64: Add ESR signal frame for PACFAIL

 docs/system/arm/cpu-features.rst  |  21 ++--
 docs/system/arm/emulation.rst     |   7 ++
 target/arm/cpu.h                  |  49 ++++++--
 target/arm/syndrome.h             |   7 ++
 target/arm/tcg/helper-a64.h       |   4 +
 tests/tcg/aarch64/pauth.h         |  23 ++++
 linux-user/aarch64/cpu_loop.c     |   7 +-
 linux-user/aarch64/signal.c       |  58 +++++++++-
 target/arm/arm-qmp-cmds.c         |   2 +-
 target/arm/cpu64.c                |  86 ++++++++++----
 target/arm/helper.c               |   4 +-
 target/arm/hvf/hvf.c              |   1 +
 target/arm/kvm64.c                |   2 +
 target/arm/tcg/cpu64.c            |   2 +
 target/arm/tcg/pauth_helper.c     | 180 ++++++++++++++++++++++++------
 target/arm/tcg/tlb_helper.c       |   8 +-
 target/arm/tcg/translate-a64.c    |  12 +-
 tests/qtest/arm-cpu-features.c    |  12 +-
 tests/tcg/aarch64/pauth-2.c       |  77 +++++++++++--
 tests/tcg/aarch64/pauth-4.c       |  18 ++-
 tests/tcg/aarch64/pauth-5.c       |  10 ++
 tests/tcg/aarch64/Makefile.target |   6 +-
 22 files changed, 497 insertions(+), 99 deletions(-)
 create mode 100644 tests/tcg/aarch64/pauth.h

Comments

Peter Maydell Sept. 8, 2023, 11:55 a.m. UTC | #1
On Wed, 30 Aug 2023 at 00:24, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> Changes for v5:
>   * Updates for review.
>   * Include linux-user ESR changes.
>
> Patch 10 is the only one without review.
>
>
> r~

Applied to target-arm.next. Thanks to both you and Aaron
for this work.

-- PMM
Peter Maydell Sept. 8, 2023, 3:41 p.m. UTC | #2
On Fri, 8 Sept 2023 at 12:55, Peter Maydell <peter.maydell@linaro.org> wrote:
>
> On Wed, 30 Aug 2023 at 00:24, Richard Henderson
> <richard.henderson@linaro.org> wrote:
> >
> > Changes for v5:
> >   * Updates for review.
> >   * Include linux-user ESR changes.
> >
> > Patch 10 is the only one without review.
> >
> >
> > r~
>
> Applied to target-arm.next. Thanks to both you and Aaron
> for this work.

It turns out that there's something wrong in the linux-user
ESR changes and they trip the clang sanitizer:
https://gitlab.com/pm215/qemu/-/jobs/5047578129

TEST linux-test on aarch64
../linux-user/aarch64/signal.c:583:21: runtime error: member access
within null pointer of type 'target_siginfo_t' (aka 'struct
target_siginfo')
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
../linux-user/aarch64/signal.c:583:21 in
make[1]: *** [Makefile:178: run-linux-test] Error 1

where that line number is in need_save_esr() on the
first line "int sig = info->si_signo;".

On non-sanitizer CI runs you just get a straight SEGV:
https://gitlab.com/pm215/qemu/-/jobs/5047578115

TEST linux-test on alpha
timeout: the monitored command dumped core
Segmentation fault
make[1]: *** [Makefile:178: run-linux-test] Error 139
make: *** [/builds/pm215/qemu/tests/Makefile.include:56:
run-tcg-tests-aarch64-linux-user] Error 2
make: *** Waiting for unfinished jobs....

I'm going to drop the 3 linux-user patches from
target-arm.next.

thanks
-- PMM