183 union cpuid_0x80000022_ebx ebx;
195 pmu->nr_arch_gp_counters = ebx.split.num_core_pmc;
197 pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS_CORE;
199 pmu->nr_arch_gp_counters = AMD64_NUM_COUNTERS;
202 pmu->nr_arch_gp_counters = min_t(
unsigned int, pmu->nr_arch_gp_counters,
205 if (pmu->version > 1) {
206 pmu->global_ctrl_mask = ~((1ull << pmu->nr_arch_gp_counters) - 1);
207 pmu->global_status_mask = pmu->global_ctrl_mask;
210 pmu->counter_bitmask[KVM_PMC_GP] = ((u64)1 << 48) - 1;
211 pmu->reserved_bits = 0xfffffff000280000ull;
212 pmu->raw_event_mask = AMD64_RAW_EVENT_MASK;
214 pmu->counter_bitmask[KVM_PMC_FIXED] = 0;
215 pmu->nr_arch_fixed_counters = 0;
216 bitmap_set(pmu->all_valid_pmc_idx, 0, pmu->nr_arch_gp_counters);
struct kvm_cpuid_entry2 * kvm_find_cpuid_entry_index(struct kvm_vcpu *vcpu, u32 function, u32 index)
struct x86_pmu_capability __read_mostly kvm_pmu_cap
static __always_inline struct cpuid_reg x86_feature_cpuid(unsigned int x86_feature)