1. 28 Aug, 2023 3 commits
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/6.6/pmu-fixes into kvmarm-master/next · 50a40ff7
      Marc Zyngier authored
      * kvm-arm64/6.6/pmu-fixes:
        : .
        : Another set of PMU fixes, coutrtesy of Reiji Watanabe.
        : From the cover letter:
        :
        : "This series fixes a couple of PMUver related handling of
        : vPMU support.
        :
        : On systems where the PMUVer is not uniform across all PEs,
        : KVM currently does not advertise PMUv3 to the guest,
        : even if userspace successfully runs KVM_ARM_VCPU_INIT with
        : KVM_ARM_VCPU_PMU_V3."
        :
        : Additionally, a fix for an obscure counter oversubscription
        : issue happening when the hsot profines the guest's EL0.
        : .
        KVM: arm64: pmu: Guard PMU emulation definitions with CONFIG_KVM
        KVM: arm64: pmu: Resync EL0 state on counter rotation
        KVM: arm64: PMU: Don't advertise STALL_SLOT_{FRONTEND,BACKEND}
        KVM: arm64: PMU: Don't advertise the STALL_SLOT event
        KVM: arm64: PMU: Avoid inappropriate use of host's PMUVer
        KVM: arm64: PMU: Disallow vPMU on non-uniform PMUVer
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      50a40ff7
    • 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
    • Marc Zyngier's avatar
      Merge branch kvm-arm64/nv-trap-forwarding into kvmarm-master/next · c1907626
      Marc Zyngier authored
      * kvm-arm64/nv-trap-forwarding: (30 commits)
        : .
        : This implements the so called "trap forwarding" infrastructure, which
        : gets used when we take a trap from an L2 guest and that the L1 guest
        : wants to see the trap for itself.
        : .
        KVM: arm64: nv: Add trap description for SPSR_EL2 and ELR_EL2
        KVM: arm64: nv: Select XARRAY_MULTI to fix build error
        KVM: arm64: nv: Add support for HCRX_EL2
        KVM: arm64: Move HCRX_EL2 switch to load/put on VHE systems
        KVM: arm64: nv: Expose FGT to nested guests
        KVM: arm64: nv: Add switching support for HFGxTR/HDFGxTR
        KVM: arm64: nv: Expand ERET trap forwarding to handle FGT
        KVM: arm64: nv: Add SVC trap forwarding
        KVM: arm64: nv: Add trap forwarding for HDFGxTR_EL2
        KVM: arm64: nv: Add trap forwarding for HFGITR_EL2
        KVM: arm64: nv: Add trap forwarding for HFGxTR_EL2
        KVM: arm64: nv: Add fine grained trap forwarding infrastructure
        KVM: arm64: nv: Add trap forwarding for CNTHCTL_EL2
        KVM: arm64: nv: Add trap forwarding for MDCR_EL2
        KVM: arm64: nv: Expose FEAT_EVT to nested guests
        KVM: arm64: nv: Add trap forwarding for HCR_EL2
        KVM: arm64: nv: Add trap forwarding infrastructure
        KVM: arm64: Restructure FGT register switching
        KVM: arm64: nv: Add FGT registers
        KVM: arm64: Add missing HCR_EL2 trap bits
        ...
      Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
      c1907626
  2. 23 Aug, 2023 2 commits
  3. 22 Aug, 2023 1 commit
  4. 20 Aug, 2023 4 commits
  5. 17 Aug, 2023 30 commits