diff mbox series

arm64: Document sysctls for emulated deprecated instructions

Message ID 20200625131507.32334-1-broonie@kernel.org (mailing list archive)
State Mainlined
Commit dd72078466ecd525f4d489e7b0093cd9b5044c8e
Headers show
Series arm64: Document sysctls for emulated deprecated instructions | expand

Commit Message

Mark Brown June 25, 2020, 1:15 p.m. UTC
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: Mark Brown <broonie@kernel.org>
---
 arch/arm64/Kconfig | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

Comments

Catalin Marinas July 2, 2020, 5:45 p.m. UTC | #1
On Thu, 25 Jun 2020 14:15:07 +0100, Mark Brown wrote:
> 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.
> 
> [...]

Applied to arm64 (for-next/misc), thanks!

[1/1] arm64: Document sysctls for emulated deprecated instructions
      https://git.kernel.org/arm64/c/dd72078466ec
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 66dc41fd49f2..6c560caf9503 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -1327,6 +1327,8 @@  config SWP_EMULATION
 	  ARMv8 obsoletes the use of A32 SWP/SWPB instructions such that
 	  they are always undefined. Say Y here to enable software
 	  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
 	  trylock() operations with the assumption that the code will not
@@ -1353,7 +1355,8 @@  config CP15_BARRIER_EMULATION
 	  Say Y here to enable software emulation of these
 	  instructions for AArch32 userspace code. When this option is
 	  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
 
@@ -1364,7 +1367,8 @@  config SETEND_EMULATION
 	  AArch32 EL0, and is deprecated in ARMv8.
 
 	  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
 	  for this feature to be enabled. If a new CPU - which doesn't support mixed