On Sat, Apr 23, 2016 at 06:04:13PM +0800, Shannon Zhao wrote: > From: Shannon Zhao <shannon.z...@linaro.org> > > Check if kvm supports guest PMUv3. If so, set the corresponding feature > bit for vcpu. > > Signed-off-by: Shannon Zhao <shannon.z...@linaro.org> > --- > target-arm/cpu-qom.h | 2 ++ > target-arm/kvm64.c | 5 +++++ > 2 files changed, 7 insertions(+)
Reviewed-by: Andrew Jones <drjo...@redhat.com> > > diff --git a/target-arm/cpu-qom.h b/target-arm/cpu-qom.h > index 1061c08..93aa6a4 100644 > --- a/target-arm/cpu-qom.h > +++ b/target-arm/cpu-qom.h > @@ -105,6 +105,8 @@ typedef struct ARMCPU { > bool powered_off; > /* CPU has security extension */ > bool has_el3; > + /* CPU has PMU (Performance Monitor Unit) */ > + bool has_pmu; > > /* CPU has memory protection unit */ > bool has_mpu; > diff --git a/target-arm/kvm64.c b/target-arm/kvm64.c > index e8527bf..b364789 100644 > --- a/target-arm/kvm64.c > +++ b/target-arm/kvm64.c > @@ -461,6 +461,11 @@ int kvm_arch_init_vcpu(CPUState *cs) > if (!arm_feature(&cpu->env, ARM_FEATURE_AARCH64)) { > cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_EL1_32BIT; > } > + if (kvm_irqchip_in_kernel() && > + kvm_check_extension(cs->kvm_state, KVM_CAP_ARM_PMU_V3)) { > + cpu->has_pmu = true; > + cpu->kvm_init_features[0] |= 1 << KVM_ARM_VCPU_PMU_V3; > + } > > /* Do KVM_ARM_VCPU_INIT ioctl */ > ret = kvm_arm_vcpu_init(cs); > -- > 2.0.4 > >