[PATCH v3 0/3] arm64: Drop support for VPIPT i-cache policy

Marc Zyngier
2023-12-04T14:36:19Z

ARMv8.2 introduced support for VPIPT i-caches, the V standing for
VMID-tagged. Although this looked like a reasonable idea, no
implementation has ever made it into the wild.

Linux has supported this for over 6 years (amusingly, just as the
architecture was dropping support for AIVIVT i-caches), but we had no
way to even test it, and it is likely that this code was just
bit-rotting.

However, in a recent breakthrough (XML drop 2023-09, tagged as
d55f5af8e09052abe92a02adf820deea2eaed717), the architecture has
finally been purged of this option, making VIPT and PIPT the only two
valid options.

This really means this code is just dead code. Nobody will ever come
up with such an implementation, and we can just get rid of it.

Most of the impact is on KVM, where we drop a few large comment blocks
(and a bit of code), while the core arch code loses the detection code
itself.

* From v2:
- Fix reserved naming for RESERVED_AIVIVT
- Collected RBs from Anshuman an Zenghui

Marc Zyngier (3):
KVM: arm64: Remove VPIPT I-cache handling
arm64: Kill detection of VPIPT i-cache policy
arm64: Rename reserved values for CTR_EL0.L1Ip

arch/arm64/include/asm/cache.h | 6 ----
arch/arm64/include/asm/kvm_mmu.h | 7 ----
arch/arm64/kernel/cpuinfo.c | 5 ---
arch/arm64/kvm/hyp/nvhe/pkvm.c | 2 +-
arch/arm64/kvm/hyp/nvhe/tlb.c | 61 --------------------------------
arch/arm64/kvm/hyp/vhe/tlb.c | 13 -------
arch/arm64/tools/sysreg | 5 +--
7 files changed, 4 insertions(+), 95 deletions(-)

--
2.39.2