[PATCH v4 0/1] arm64/cpufeature: Support optionally disable MTE

From: yee.lee
Date: Tue Aug 03 2021 - 03:08:35 EST


From: Yee Lee <yee.lee@xxxxxxxxxxxx>

An option in runtime to disable MTE support is necessary for some
scenarios such as HW issue workaround, FW tests and
some evaluation works in performance and resoruce costs.

This patch supoorts to override id-reg on the
shadow capability via comandline and suppress MTE feature.

SCTLR_EL1.ATA/ATA0 setting is moved to cpu_enable_mte()
since they are not allowed to be cache TLB.

All works in this patch turn off related software support,
but not fully disable MTE in HW side.

=== Test ===
QEMU5.2 + MTE

(1) normal boot
MTE feature is enabled and HW-tags KASAN works.

(2) passed "arm64.nomte" in cmdline
boot log:
..(skip)
[ 0.000000] CPU features: SYS_ID_AA64PFR1_EL1[11:8]: forced to 0

====
Changed since v4:
- Move ATA/ATA0 setting to cpu_enable_mte()

Changed since v3:
- Add documentation text

Changed since v2:
- Use id-reg override machanism to suppress feature.

Yee Lee (1):
arm64/cpufeature: Optionally disable MTE via command-line

Documentation/admin-guide/kernel-parameters.txt | 3 +++
arch/arm64/include/asm/sysreg.h | 3 +--
arch/arm64/kernel/cpufeature.c | 3 +++
arch/arm64/kernel/idreg-override.c | 2 ++
4 files changed, 9 insertions(+), 2 deletions(-)

--
2.18.0