aboutsummaryrefslogtreecommitdiff
path: root/rust/helpers/helpers.c
diff options
context:
space:
mode:
authorOliver Upton <[email protected]>2024-10-07 23:30:27 +0000
committerMarc Zyngier <[email protected]>2024-10-08 10:40:27 +0100
commitc268f204f7c5784e84583c1c44d427bac09f517a (patch)
tree10b75651a487bf8ad69cb263cc1b47c0515b22cc /rust/helpers/helpers.c
parent3c164eb9464d39ba339c1487dcac0dc9508e03f0 (diff)
KVM: arm64: nv: Punt stage-2 recycling to a vCPU request
Currently, when a nested MMU is repurposed for some other MMU context, KVM unmaps everything during vcpu_load() while holding the MMU lock for write. This is quite a performance bottleneck for large nested VMs, as all vCPU scheduling will spin until the unmap completes. Start punting the MMU cleanup to a vCPU request, where it is then possible to periodically release the MMU lock and CPU in the presence of contention. Ensure that no vCPU winds up using a stale MMU by tracking the pending unmap on the S2 MMU itself and requesting an unmap on every vCPU that finds it. Signed-off-by: Oliver Upton <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Marc Zyngier <[email protected]>
Diffstat (limited to 'rust/helpers/helpers.c')
0 files changed, 0 insertions, 0 deletions