On Mon, Dec 04, 2023 at 02:36:03PM +0000, Marc Zyngier wrote: > 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 For the series: Acked-by: Mark Rutland <mark.rutland@xxxxxxx> Looking forward, we can/should probably replace __icache_flags with a single ICACHE_NOALIASING or ICACHE_PIPT cpucap, which'd get rid of a bunch of duplicated logic and make that more sound in the case of races around cpu onlining. Mark. > > 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 > >