Lines Matching refs:select_idx

17 static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx);
18 static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx);
43 static bool kvm_pmu_idx_is_64bit(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_idx_is_64bit() argument
45 return (select_idx == ARMV8_PMU_CYCLE_IDX && in kvm_pmu_idx_is_64bit()
75 static bool kvm_pmu_idx_is_high_counter(u64 select_idx) in kvm_pmu_idx_is_high_counter() argument
77 return select_idx & 0x1; in kvm_pmu_idx_is_high_counter()
108 static bool kvm_pmu_idx_has_chain_evtype(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_idx_has_chain_evtype() argument
112 select_idx |= 0x1; in kvm_pmu_idx_has_chain_evtype()
114 if (select_idx == ARMV8_PMU_CYCLE_IDX) in kvm_pmu_idx_has_chain_evtype()
117 reg = PMEVTYPER0_EL0 + select_idx; in kvm_pmu_idx_has_chain_evtype()
163 u64 kvm_pmu_get_counter_value(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_get_counter_value() argument
167 struct kvm_pmc *pmc = &pmu->pmc[select_idx]; in kvm_pmu_get_counter_value()
172 kvm_pmu_idx_is_high_counter(select_idx)) in kvm_pmu_get_counter_value()
174 else if (select_idx != ARMV8_PMU_CYCLE_IDX) in kvm_pmu_get_counter_value()
186 void kvm_pmu_set_counter_value(struct kvm_vcpu *vcpu, u64 select_idx, u64 val) in kvm_pmu_set_counter_value() argument
190 reg = (select_idx == ARMV8_PMU_CYCLE_IDX) in kvm_pmu_set_counter_value()
191 ? PMCCNTR_EL0 : PMEVCNTR0_EL0 + select_idx; in kvm_pmu_set_counter_value()
192 __vcpu_sys_reg(vcpu, reg) += (s64)val - kvm_pmu_get_counter_value(vcpu, select_idx); in kvm_pmu_set_counter_value()
195 kvm_pmu_create_perf_event(vcpu, select_idx); in kvm_pmu_set_counter_value()
587 static bool kvm_pmu_counter_is_enabled(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_counter_is_enabled() argument
590 (__vcpu_sys_reg(vcpu, PMCNTENSET_EL0) & BIT(select_idx)); in kvm_pmu_counter_is_enabled()
598 static void kvm_pmu_create_perf_event(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_create_perf_event() argument
611 pmc = kvm_pmu_get_canonical_pmc(&pmu->pmc[select_idx]); in kvm_pmu_create_perf_event()
688 static void kvm_pmu_update_pmc_chained(struct kvm_vcpu *vcpu, u64 select_idx) in kvm_pmu_update_pmc_chained() argument
691 struct kvm_pmc *pmc = &pmu->pmc[select_idx], *canonical_pmc; in kvm_pmu_update_pmc_chained()
726 u64 select_idx) in kvm_pmu_set_counter_event_type() argument
734 reg = (select_idx == ARMV8_PMU_CYCLE_IDX) in kvm_pmu_set_counter_event_type()
735 ? PMCCFILTR_EL0 : PMEVTYPER0_EL0 + select_idx; in kvm_pmu_set_counter_event_type()
739 kvm_pmu_update_pmc_chained(vcpu, select_idx); in kvm_pmu_set_counter_event_type()
740 kvm_pmu_create_perf_event(vcpu, select_idx); in kvm_pmu_set_counter_event_type()