aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kvm/Makefile
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2017-03-10 20:32:25 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2017-03-20 16:25:45 +0000
commit87da236ebc711644dcff2339ee5b854f1abf1fca (patch)
tree73da290dd0092c7b537ee5c77476bd9d216bcf53 /arch/arm64/kvm/Makefile
parentarm64: cache: Identify VPIPT I-caches (diff)
downloadlinux-dev-87da236ebc711644dcff2339ee5b854f1abf1fca.tar.xz
linux-dev-87da236ebc711644dcff2339ee5b854f1abf1fca.zip
arm64: KVM: Add support for VPIPT I-caches
A VPIPT I-cache has two main properties: 1. Lines allocated into the cache are tagged by VMID and a lookup can only hit lines that were allocated with the current VMID. 2. I-cache invalidation from EL1/0 only invalidates lines that match the current VMID of the CPU doing the invalidation. This can cause issues with non-VHE configurations, where the host runs at EL1 and wants to invalidate I-cache entries for a guest running with a different VMID. VHE is not affected, because the host runs at EL2 and I-cache invalidation applies as expected. This patch solves the problem by invalidating the I-cache when unmapping a page at stage 2 on a system with a VPIPT I-cache but not running with VHE enabled. Hopefully this is an obscure enough configuration that the overhead isn't anything to worry about, although it does mean that the by-range I-cache invalidation currently performed when mapping at stage 2 can be elided on such systems, because the I-cache will be clean for the guest VMID following a rollover event. Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'arch/arm64/kvm/Makefile')
0 files changed, 0 insertions, 0 deletions