Lines Matching defs:msr
38 static inline struct kvm_pmc *get_gp_pmc_amd(struct kvm_pmu *pmu, u32 msr,
47 switch (msr) {
55 idx = (unsigned int)((msr - MSR_F15H_PERF_CTL0) / 2);
56 if (!(msr & 0x1) != (type == PMU_TYPE_EVNTSEL))
62 idx = msr - MSR_K7_EVNTSEL0;
67 idx = msr - MSR_K7_PERFCTR0;
97 static struct kvm_pmc *amd_msr_idx_to_pmc(struct kvm_vcpu *vcpu, u32 msr)
102 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
103 pmc = pmc ? pmc : get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
108 static bool amd_is_valid_msr(struct kvm_vcpu *vcpu, u32 msr)
112 switch (msr) {
122 if (msr > MSR_F15H_PERF_CTR5 &&
123 msr < MSR_F15H_PERF_CTL0 + 2 * pmu->nr_arch_gp_counters)
128 return amd_msr_idx_to_pmc(vcpu, msr);
135 u32 msr = msr_info->index;
138 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
144 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
157 u32 msr = msr_info->index;
161 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
168 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);