[RFC] SCTLR_EL1.TIDCP toggling for performance

From: Liao, Chang
Date: Thu Jul 17 2025 - 22:32:16 EST


Hi, Kristina

I've reviewed your patch [1] for FEAT_TIDCP1 support, which by default traps EL0
accesses to implementation-defined system registers and instructions at EL1/EL2.

Do you have any plans to add support for toggling the SCTLR_EL1.TIDCP1 bit? I'm
encountering performance degradation on CPU where certain implementation-defined
registers and instructions are designed for EL0 performance use. The trapping
overhead is substantial enough to compromise any benefits, and it's even worse
in virtualization. Therefore, I'm hoping there's a way to clear the SCTLR_EL1.TIDCP1
bit on such platforms, perhaps via a kernel config option or command-line parameter.
Alternatively, do you have a better solution for gracefully toggling this bit on
and off?

Thanks

[1] https://lore.kernel.org/linux-arm-kernel/Yrw3NWkH6D0CgRsF@xxxxxxxxxxxxx/T/#m5cfdb27b48d9d7e30db73e991fc6c232ba8a7349

--
BR
Liao, Chang