On Thu, Oct 18, 2012 at 11:19:14PM -0000, Andi Kleen wrote:
>  static inline u8 fixed_en_pmi(u64 ctrl, int idx)
> @@ -400,7 +407,7 @@ int kvm_pmu_set_msr(struct kvm_vcpu *vcpu, u32 index, u64 
> data)
>               } else if ((pmc = get_gp_pmc(pmu, index, MSR_P6_EVNTSEL0))) {
>                       if (data == pmc->eventsel)
>                               return 0;
> -                     if (!(data & 0xffffffff00200000ull)) {
> +                     if (!(data & 0xfffffffc00200000ull)) {
>                               reprogram_gp_counter(pmc, data);
>                               return 0;
>                       }

Mask should depend on cpuid bits provided to a guest. SDM says TSX is
available if CPUID.(EAX=7, ECX=0):RTM[bit 11]=1, or  if
CPUID.07H.EBX.HLE [bit 4] = 1, so we need to check for this in
kvm_pmu_cpuid_update() and initialize mask accordingly.

--
                        Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to