Lines Matching refs:pmu

18 #include "pmu.h"
63 static unsigned int get_msr_base(struct kvm_pmu *pmu, enum pmu_type type)
65 struct kvm_vcpu *vcpu = pmu_to_vcpu(pmu);
114 static inline struct kvm_pmc *get_gp_pmc_amd(struct kvm_pmu *pmu, u32 msr,
142 return &pmu->gp_counters[msr_to_index(msr)];
182 static struct kvm_pmc *amd_pmc_idx_to_pmc(struct kvm_pmu *pmu, int pmc_idx)
184 unsigned int base = get_msr_base(pmu, PMU_TYPE_COUNTER);
185 struct kvm_vcpu *vcpu = pmu_to_vcpu(pmu);
195 return get_gp_pmc_amd(pmu, base + pmc_idx, PMU_TYPE_COUNTER);
201 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
205 return (idx >= pmu->nr_arch_gp_counters);
212 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
216 if (idx >= pmu->nr_arch_gp_counters)
218 counters = pmu->gp_counters;
231 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
234 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
235 pmc = pmc ? pmc : get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
242 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
247 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
253 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
264 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
270 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_COUNTER);
276 pmc = get_gp_pmc_amd(pmu, msr, PMU_TYPE_EVNTSEL);
278 data &= ~pmu->reserved_bits;
289 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
292 pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS_CORE;
294 pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS;
296 pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << 48) - 1;
297 pmu->reserved_bits = 0xfffffff000280000ull;
298 pmu->raw_event_mask = AMD64_RAW_EVENT_MASK;
299 pmu->version = 1;
301 pmu->counter_bitmask[KVM_PMC_FIXED] = 0;
302 pmu->nr_arch_fixed_counters = 0;
303 pmu->global_status = 0;
304 bitmap_set(pmu->all_valid_pmc_idx, 0, pmu->nr_arch_gp_counters);
309 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
315 pmu->gp_counters[i].type = KVM_PMC_GP;
316 pmu->gp_counters[i].vcpu = vcpu;
317 pmu->gp_counters[i].idx = i;
318 pmu->gp_counters[i].current_config = 0;
324 struct kvm_pmu *pmu = vcpu_to_pmu(vcpu);
328 struct kvm_pmc *pmc = &pmu->gp_counters[i];