• Marc Zyngier's avatar
    Merge branch kvm-arm64/pmu-unchained into kvmarm-master/next · 118bc846
    Marc Zyngier authored
    * kvm-arm64/pmu-unchained:
      : .
      : PMUv3 fixes and improvements:
      :
      : - Make the CHAIN event handling strictly follow the architecture
      :
      : - Add support for PMUv3p5 (64bit counters all the way)
      :
      : - Various fixes and cleanups
      : .
      KVM: arm64: PMU: Fix period computation for 64bit counters with 32bit overflow
      KVM: arm64: PMU: Sanitise PMCR_EL0.LP on first vcpu run
      KVM: arm64: PMU: Simplify PMCR_EL0 reset handling
      KVM: arm64: PMU: Replace version number '0' with ID_AA64DFR0_EL1_PMUVer_NI
      KVM: arm64: PMU: Make kvm_pmc the main data structure
      KVM: arm64: PMU: Simplify vcpu computation on perf overflow notification
      KVM: arm64: PMU: Allow PMUv3p5 to be exposed to the guest
      KVM: arm64: PMU: Implement PMUv3p5 long counter support
      KVM: arm64: PMU: Allow ID_DFR0_EL1.PerfMon to be set from userspace
      KVM: arm64: PMU: Allow ID_AA64DFR0_EL1.PMUver to be set from userspace
      KVM: arm64: PMU: Move the ID_AA64DFR0_EL1.PMUver limit to VM creation
      KVM: arm64: PMU: Do not let AArch32 change the counters' top 32 bits
      KVM: arm64: PMU: Simplify setting a counter to a specific value
      KVM: arm64: PMU: Add counter_index_to_*reg() helpers
      KVM: arm64: PMU: Only narrow counters that are not 64bit wide
      KVM: arm64: PMU: Narrow the overflow checking when required
      KVM: arm64: PMU: Distinguish between 64bit counter and 64bit overflow
      KVM: arm64: PMU: Always advertise the CHAIN event
      KVM: arm64: PMU: Align chained counter implementation with architecture pseudocode
      arm64: Add ID_DFR0_EL1.PerfMon values for PMUv3p7 and IMP_DEF
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    118bc846
arm.c 54.5 KB