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

Richard Henderson posted 12 patches 8 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230829232335.965414-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Laurent Vivier <laurent@vivier.eu>, Alexander Graf <agraf@csgraf.de>, Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>
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
[PATCH v5 00/12] Implement Most ARMv8.3 Pointer Authentication Features
Posted by Richard Henderson 8 months ago
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

-- 
2.34.1
Re: [PATCH v5 00/12] Implement Most ARMv8.3 Pointer Authentication Features
Posted by Peter Maydell 7 months, 3 weeks ago
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
Re: [PATCH v5 00/12] Implement Most ARMv8.3 Pointer Authentication Features
Posted by Peter Maydell 7 months, 3 weeks ago
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