Commit dd720784 authored by Mark Brown's avatar Mark Brown Committed by Catalin Marinas

arm64: Document sysctls for emulated deprecated instructions

We have support for emulating a number of deprecated instructions in the
kernel with individual Kconfig options enabling this support per
instruction. In addition to the Kconfig options we also provide runtime
control via sysctls but this is not currently mentioned in the Kconfig so
not very discoverable for users. This is particularly important for
SWP/SWPB since this is disabled by default at runtime and must be enabled
via the sysctl, causing considerable frustration for users who have enabled
the config option and are then confused to find that the instruction is
still faulting.

Add a reference to the sysctls in the help text for each of the config
options, noting that SWP/SWPB is disabled by default, to improve the
user experience.
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20200625131507.32334-1-broonie@kernel.orgSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 638d5031
...@@ -1327,6 +1327,8 @@ config SWP_EMULATION ...@@ -1327,6 +1327,8 @@ config SWP_EMULATION
ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that
they are always undefined. Say Y here to enable software they are always undefined. Say Y here to enable software
emulation of these instructions for userspace using LDXR/STXR. emulation of these instructions for userspace using LDXR/STXR.
This feature can be controlled at runtime with the abi.swp
sysctl which is disabled by default.
In some older versions of glibc [<=2.8] SWP is used during futex In some older versions of glibc [<=2.8] SWP is used during futex
trylock() operations with the assumption that the code will not trylock() operations with the assumption that the code will not
...@@ -1353,7 +1355,8 @@ config CP15_BARRIER_EMULATION ...@@ -1353,7 +1355,8 @@ config CP15_BARRIER_EMULATION
Say Y here to enable software emulation of these Say Y here to enable software emulation of these
instructions for AArch32 userspace code. When this option is instructions for AArch32 userspace code. When this option is
enabled, CP15 barrier usage is traced which can help enabled, CP15 barrier usage is traced which can help
identify software that needs updating. identify software that needs updating. This feature can be
controlled at runtime with the abi.cp15_barrier sysctl.
If unsure, say Y If unsure, say Y
...@@ -1364,7 +1367,8 @@ config SETEND_EMULATION ...@@ -1364,7 +1367,8 @@ config SETEND_EMULATION
AArch32 EL0, and is deprecated in ARMv8. AArch32 EL0, and is deprecated in ARMv8.
Say Y here to enable software emulation of the instruction Say Y here to enable software emulation of the instruction
for AArch32 userspace code. for AArch32 userspace code. This feature can be controlled
at runtime with the abi.setend sysctl.
Note: All the cpus on the system must have mixed endian support at EL0 Note: All the cpus on the system must have mixed endian support at EL0
for this feature to be enabled. If a new CPU - which doesn't support mixed for this feature to be enabled. If a new CPU - which doesn't support mixed
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment