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

Mark Rutland
2023-12-04T14:45:01Z

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@arm.com>

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
>
>