[PATCH v2 00/11] arm64: Support for Armv8.8 memcpy instructions in userspace

Kristina Martsenko kristina.martsenko at arm.com
Tue May 9 07:22:24 PDT 2023


The Armv8.8 extension adds new instructions to perform memcpy(), memset() and
memmove() operations in hardware (FEAT_MOPS). This series adds support for
using the new instructions in userspace. More information can be found in the
cover letter for v1:
  https://lore.kernel.org/linux-arm-kernel/20230216160012.272345-1-kristina.martsenko@arm.com/

Changes in v2:
 - Removed booting.rst requirement for HCRX_EL2.MCE2
 - Changed HCRX_EL2 cpucap to be STRICT_BOOT type
 - Changed HCRX_EL2.SMPME to be set for the guest and unset for the host
 - Moved HCRX_EL2 initialization into init_el2_state(), dropped ISB
 - Simplified conditional checks in mops exception handler with XOR
 - Added comments from Arm ARM into mops exception handler
 - Converted cpucaps to use the new ARM64_CPUID_FIELDS() helper
 - Added MOPS to hwcaps kselftest
 - Improved commit messages
 - Rebased onto v6.4-rc1
 - v1: https://lore.kernel.org/linux-arm-kernel/20230216160012.272345-1-kristina.martsenko@arm.com/


Kristina Martsenko (11):
  KVM: arm64: initialize HCRX_EL2
  arm64: cpufeature: detect FEAT_HCX
  KVM: arm64: switch HCRX_EL2 between host and guest
  arm64: mops: document boot requirements for MOPS
  arm64: mops: don't disable host MOPS instructions from EL2
  KVM: arm64: hide MOPS from guests
  arm64: mops: handle MOPS exceptions
  arm64: mops: handle single stepping after MOPS exception
  arm64: mops: detect and enable FEAT_MOPS
  arm64: mops: allow disabling MOPS from the kernel command line
  kselftest/arm64: add MOPS to hwcap test

 .../admin-guide/kernel-parameters.txt         |  3 +
 Documentation/arm64/booting.rst               |  6 ++
 Documentation/arm64/cpu-feature-registers.rst |  2 +
 Documentation/arm64/elf_hwcaps.rst            |  3 +
 arch/arm64/include/asm/el2_setup.h            | 18 +++---
 arch/arm64/include/asm/esr.h                  | 11 +++-
 arch/arm64/include/asm/exception.h            |  1 +
 arch/arm64/include/asm/hwcap.h                |  1 +
 arch/arm64/include/asm/kvm_arm.h              |  4 ++
 arch/arm64/include/uapi/asm/hwcap.h           |  1 +
 arch/arm64/kernel/cpufeature.c                | 23 ++++++++
 arch/arm64/kernel/cpuinfo.c                   |  1 +
 arch/arm64/kernel/entry-common.c              | 11 ++++
 arch/arm64/kernel/idreg-override.c            |  2 +
 arch/arm64/kernel/traps.c                     | 58 +++++++++++++++++++
 arch/arm64/kvm/hyp/include/hyp/switch.h       |  6 ++
 arch/arm64/kvm/sys_regs.c                     |  1 +
 arch/arm64/tools/cpucaps                      |  2 +
 tools/testing/selftests/arm64/abi/hwcap.c     | 22 +++++++
 19 files changed, 167 insertions(+), 9 deletions(-)


base-commit: ac9a78681b921877518763ba0e89202254349d1b
-- 
2.25.1




More information about the linux-arm-kernel mailing list