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

Mark Rutland mark.rutland at arm.com
Mon Dec 4 06:44:56 PST 2023


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



More information about the linux-arm-kernel mailing list