summaryrefslogtreecommitdiffstats
path: root/net/can
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2016-10-18 19:37:49 +0200
committerMarc Zyngier <marc.zyngier@arm.com>2016-11-04 18:56:28 +0100
commit94d0e5980d6791b9f98a9b6c586c1f7cb76b2178 (patch)
treef513c7147798d74dee9b3f1a79dd0ded62d9aa37 /net/can
parentLinux 4.9-rc2 (diff)
downloadlinux-94d0e5980d6791b9f98a9b6c586c1f7cb76b2178.tar.xz
linux-94d0e5980d6791b9f98a9b6c586c1f7cb76b2178.zip
arm/arm64: KVM: Perform local TLB invalidation when multiplexing vcpus on a single CPU
Architecturally, TLBs are private to the (physical) CPU they're associated with. But when multiple vcpus from the same VM are being multiplexed on the same CPU, the TLBs are not private to the vcpus (and are actually shared across the VMID). Let's consider the following scenario: - vcpu-0 maps PA to VA - vcpu-1 maps PA' to VA If run on the same physical CPU, vcpu-1 can hit TLB entries generated by vcpu-0 accesses, and access the wrong physical page. The solution to this is to keep a per-VM map of which vcpu ran last on each given physical CPU, and invalidate local TLBs when switching to a different vcpu from the same VM. Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'net/can')
0 files changed, 0 insertions, 0 deletions