[PATCH v4 0/9] Implement Most ARMv8.3 Pointer Authentication Features

Richard Henderson posted 9 patches 9 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230822042530.1026751-1-richard.henderson@linaro.org
Maintainers: Peter Maydell <peter.maydell@linaro.org>, Alexander Graf <agraf@csgraf.de>, Paolo Bonzini <pbonzini@redhat.com>, Thomas Huth <thuth@redhat.com>, Laurent Vivier <lvivier@redhat.com>
There is a newer version of this series
docs/system/arm/cpu-features.rst  |  21 ++--
docs/system/arm/emulation.rst     |   7 ++
target/arm/cpu.h                  |  51 +++++++--
target/arm/syndrome.h             |   7 ++
target/arm/tcg/helper-a64.h       |   4 +
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/translate-a64.c    |  12 +-
tests/qtest/arm-cpu-features.c    |  12 +-
tests/tcg/aarch64/pauth-2.c       |  61 ++++++++--
tests/tcg/aarch64/pauth-4.c       |  28 ++++-
tests/tcg/aarch64/pauth-5.c       |  20 ++++
tests/tcg/aarch64/Makefile.target |   5 +-
18 files changed, 409 insertions(+), 96 deletions(-)
[PATCH v4 0/9] Implement Most ARMv8.3 Pointer Authentication Features
Posted by Richard Henderson 9 months ago
This is an update of Aaron's v3 [1].
There are a fair number of changes beyond a mere rebase:

  * Updates to the test cases which fail with the new features.
  * Updates to the documentation.
  * Preserve pauth feature set when changing pauth algorithm.
  * Rearrange feature detection:
     - Add ARMPauthFeature
     - Use it with isar_feature_pauth_feature
     - Remove many of the isar predicates
    The pauth_auth and pauth_addpac routines wind up making lots
    of tests against the pauth feature set.  Rather than recompute
    the feature set many times for each predicate, compute it once
    and compare against the enumerators.
  * Algorithmic simplification of Pauth2 and FPAC using cmp_mask.

r~

[1] https://patchew.org/QEMU/20230322202541.1404058-1-aaron@os.amperecomputing.com/

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 (3):
  tests/tcg/aarch64: Adjust pauth tests for FEAT_FPAC
  target/arm: Don't change pauth features when changing algorithm
  target/arm: Implement FEAT_PACQARMA3

 docs/system/arm/cpu-features.rst  |  21 ++--
 docs/system/arm/emulation.rst     |   7 ++
 target/arm/cpu.h                  |  51 +++++++--
 target/arm/syndrome.h             |   7 ++
 target/arm/tcg/helper-a64.h       |   4 +
 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/translate-a64.c    |  12 +-
 tests/qtest/arm-cpu-features.c    |  12 +-
 tests/tcg/aarch64/pauth-2.c       |  61 ++++++++--
 tests/tcg/aarch64/pauth-4.c       |  28 ++++-
 tests/tcg/aarch64/pauth-5.c       |  20 ++++
 tests/tcg/aarch64/Makefile.target |   5 +-
 18 files changed, 409 insertions(+), 96 deletions(-)

-- 
2.34.1
Re: [PATCH v4 0/9] Implement Most ARMv8.3 Pointer Authentication Features
Posted by Peter Maydell 9 months ago
On Tue, 22 Aug 2023 at 05:25, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> This is an update of Aaron's v3 [1].
> There are a fair number of changes beyond a mere rebase:
>
>   * Updates to the test cases which fail with the new features.
>   * Updates to the documentation.
>   * Preserve pauth feature set when changing pauth algorithm.
>   * Rearrange feature detection:
>      - Add ARMPauthFeature
>      - Use it with isar_feature_pauth_feature
>      - Remove many of the isar predicates
>     The pauth_auth and pauth_addpac routines wind up making lots
>     of tests against the pauth feature set.  Rather than recompute
>     the feature set many times for each predicate, compute it once
>     and compare against the enumerators.
>   * Algorithmic simplification of Pauth2 and FPAC using cmp_mask.

Thanks for the respin. (Looks like you forgot to cc Aaron on this.)

-- PMM

>
> r~
>
> [1] https://patchew.org/QEMU/20230322202541.1404058-1-aaron@os.amperecomputing.com/
>
> 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 (3):
>   tests/tcg/aarch64: Adjust pauth tests for FEAT_FPAC
>   target/arm: Don't change pauth features when changing algorithm
>   target/arm: Implement FEAT_PACQARMA3
>
>  docs/system/arm/cpu-features.rst  |  21 ++--
>  docs/system/arm/emulation.rst     |   7 ++
>  target/arm/cpu.h                  |  51 +++++++--
>  target/arm/syndrome.h             |   7 ++
>  target/arm/tcg/helper-a64.h       |   4 +
>  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/translate-a64.c    |  12 +-
>  tests/qtest/arm-cpu-features.c    |  12 +-
>  tests/tcg/aarch64/pauth-2.c       |  61 ++++++++--
>  tests/tcg/aarch64/pauth-4.c       |  28 ++++-
>  tests/tcg/aarch64/pauth-5.c       |  20 ++++
>  tests/tcg/aarch64/Makefile.target |   5 +-
>  18 files changed, 409 insertions(+), 96 deletions(-)