All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/6] KVM: arm64: nv: Implement nested stage-2 reverse map
@ 2026-07-14 11:59 Wei-Lin Chang
  2026-07-14 11:59 ` [PATCH v4 1/6] KVM: arm64: Use a variable for the canonical GPA in kvm_s2_fault_map() Wei-Lin Chang
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Wei-Lin Chang @ 2026-07-14 11:59 UTC (permalink / raw)
  To: linux-arm-kernel, kvmarm, linux-kernel
  Cc: Marc Zyngier, Oliver Upton, Fuad Tabba, Joey Gouly, Steffen Eiden,
	Suzuki K Poulose, Zenghui Yu, Catalin Marinas, Will Deacon,
	Itaru Kitayama, Sebastian Ene, Wei-Lin Chang

Hi,

This is v4 of optimizing the shadow s2 mmu unmapping during MMU
notifiers. The general theme stays the same, but various
improvements/fixes are added. Thanks for all the feedback. Please see
below for the changes.

* Changes from v3 [1]:

  - Rebased on to the latest kvmarm/fixes.

  - Removed commit "KVM: arm64: Move shadow_pt_debugfs_dentry to reduce
    holes in kvm_s2_mmu" because the current shadow ptdump code is found
    to be buggy and the proposed fix removes shadow_pt_debugfs_dentry [2].

  - Rename some variables to improve readability e.g. ipa ->
    canonical_ipa, fault_ipa -> nested_ipa.

  - Skip reverse map optimization when !mmu->nested_stage2_enabled,
    and just unmap the canonical IPA range during MMU notifiers.

  - Change comment above the code that checks whether an identical
    reverse map already exists in kvm_record_nested_revmap() from saying
    it could be a permission update to saying another parallel stage-2
    fault could have inserted an identical reverse map. This is because
    permission update won't trigger kvm_record_nested_revmap().

  - Add helpers for checking maple tree entry flags VALID_ENTRY and
    UNKNOWN_IPA, also warn if both are set at the same time.

  - Test canonical IPA alignment with the mapping size during reverse
    map insertion.

  - Move clean up of kvm_unmap_gfn_range() to its own patch.

  - Avoid naming variables with "*dir*", as it can be misunderstood to
    be related to directories.

  - Use mas_find() instead of mas_find_range() as mas_find_range()
    returns every range including empty/NULL ranges, for our use case
    we only want to iterate over non-NULL ranges.

  - Added a trace point to track when the reverse map maple tree becomes
    "broken" i.e. maple tree insertion failure.

Thanks!

[1]: https://lore.kernel.org/kvmarm/20260510145338.322962-1-weilin.chang@arm.com/
[2]: https://lore.kernel.org/kvmarm/20260630121005.1130996-1-weilin.chang@arm.com/

Wei-Lin Chang (6):
  KVM: arm64: Use a variable for the canonical GPA in kvm_s2_fault_map()
  KVM: arm64: nv: Avoid full shadow s2 unmap
  KVM: arm64: nv: Add nested revmap broken tracepoint
  KVM: arm64: Refactor kvm_unmap_gfn_range() with common variables
  KVM: arm64: nv: Remove reverse map entries during TLBI handling
  KVM: arm64: nv: Create nested IPA direct map to speed up reverse map
    removal

 arch/arm64/include/asm/kvm_host.h   |   9 +
 arch/arm64/include/asm/kvm_nested.h |   6 +
 arch/arm64/kvm/mmu.c                |  42 +++--
 arch/arm64/kvm/nested.c             | 280 +++++++++++++++++++++++++++-
 arch/arm64/kvm/sys_regs.c           |   3 +
 arch/arm64/kvm/trace_arm.h          |  27 +++
 6 files changed, 349 insertions(+), 18 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-07-27 22:24 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 11:59 [PATCH v4 0/6] KVM: arm64: nv: Implement nested stage-2 reverse map Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 1/6] KVM: arm64: Use a variable for the canonical GPA in kvm_s2_fault_map() Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 2/6] KVM: arm64: nv: Avoid full shadow s2 unmap Wei-Lin Chang
2026-07-16  7:05   ` Oliver Upton
2026-07-16 16:14     ` Wei-Lin Chang
2026-07-16 17:16       ` Oliver Upton
2026-07-22 13:09         ` Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 3/6] KVM: arm64: nv: Add nested revmap broken tracepoint Wei-Lin Chang
2026-07-16  6:45   ` Oliver Upton
2026-07-16  8:56     ` Marc Zyngier
2026-07-16 16:25       ` Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 4/6] KVM: arm64: Refactor kvm_unmap_gfn_range() with common variables Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 5/6] KVM: arm64: nv: Remove reverse map entries during TLBI handling Wei-Lin Chang
2026-07-14 11:59 ` [PATCH v4 6/6] KVM: arm64: nv: Create nested IPA direct map to speed up reverse map removal Wei-Lin Chang
2026-07-27 22:24 ` [PATCH v4 0/6] KVM: arm64: nv: Implement nested stage-2 reverse map Itaru Kitayama

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.