diff options
author | Marc Zyngier <maz@kernel.org> | 2023-04-26 20:23:30 +0300 |
---|---|---|
committer | Oliver Upton <oliver.upton@linux.dev> | 2023-05-16 20:39:19 +0300 |
commit | a12ab1378a88b38f3af8b1a899b7d8526324ba6f (patch) | |
tree | 67c2fefbd6c0014b4ad71496b341fb11585183bf /arch/arm64/kvm/mmu.c | |
parent | 6acf51666d039857421b6f8a3660301c82649fa5 (diff) | |
download | linux-a12ab1378a88b38f3af8b1a899b7d8526324ba6f.tar.xz |
KVM: arm64: Use local TLBI on permission relaxation
Broadcast TLB invalidations (TLBIs) targeting the Inner Shareable
Domain are usually less performant than their non-shareable variant.
In particular, we observed some implementations that take
millliseconds to complete parallel broadcasted TLBIs.
It's safe to use non-shareable TLBIs when relaxing permissions on a
PTE in the KVM case. According to the ARM ARM (0487I.a) section
D8.13.1 "Using break-before-make when updating translation table
entries", permission relaxation does not need break-before-make.
Specifically, R_WHZWS states that these are the only changes that
require a break-before-make sequence: changes of memory type
(Shareability or Cacheability), address changes, or changing the block
size.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Ricardo Koller <ricarkol@google.com>
Reviewed-by: Gavin Shan <gshan@redhat.com>
Link: https://lore.kernel.org/r/20230426172330.1439644-13-ricarkol@google.com
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Diffstat (limited to 'arch/arm64/kvm/mmu.c')
0 files changed, 0 insertions, 0 deletions