lab.nexedi.com will be down from Thursday, 20 March 2025, 07:30:00 UTC for a duration of approximately 2 hours

  • Marc Zyngier's avatar
    Merge branch kvm-arm64/tlbi-range into kvmarm-master/next · d58335d1
    Marc Zyngier authored
    * kvm-arm64/tlbi-range:
      : .
      : FEAT_TLBIRANGE support, courtesy of Raghavendra Rao Ananta.
      : From the cover letter:
      :
      : "In certain code paths, KVM/ARM currently invalidates the entire VM's
      : page-tables instead of just invalidating a necessary range. For example,
      : when collapsing a table PTE to a block PTE, instead of iterating over
      : each PTE and flushing them, KVM uses 'vmalls12e1is' TLBI operation to
      : flush all the entries. This is inefficient since the guest would have
      : to refill the TLBs again, even for the addresses that aren't covered
      : by the table entry. The performance impact would scale poorly if many
      : addresses in the VM is going through this remapping.
      :
      : For architectures that implement FEAT_TLBIRANGE, KVM can replace such
      : inefficient paths by performing the invalidations only on the range of
      : addresses that are in scope. This series tries to achieve the same in
      : the areas of stage-2 map, unmap and write-protecting the pages."
      : .
      KVM: arm64: Use TLBI range-based instructions for unmap
      KVM: arm64: Invalidate the table entries upon a range
      KVM: arm64: Flush only the memslot after write-protect
      KVM: arm64: Implement kvm_arch_flush_remote_tlbs_range()
      KVM: arm64: Define kvm_tlb_flush_vmid_range()
      KVM: arm64: Implement __kvm_tlb_flush_vmid_range()
      arm64: tlb: Implement __flush_s2_tlb_range_op()
      arm64: tlb: Refactor the core flush algorithm of __flush_tlb_range
      KVM: Move kvm_arch_flush_remote_tlbs_memslot() to common code
      KVM: Allow range-based TLB invalidation from common code
      KVM: Remove CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL
      KVM: arm64: Use kvm_arch_flush_remote_tlbs()
      KVM: Declare kvm_arch_flush_remote_tlbs() globally
      KVM: Rename kvm_arch_flush_remote_tlb() to kvm_arch_flush_remote_tlbs()
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    d58335d1
Kconfig 1.89 KB