Lines Matching refs:cpuhw
127 struct cpu_hw_events *cpuhw; in validate_ctr_version() local
130 cpuhw = &get_cpu_var(cpu_hw_events); in validate_ctr_version()
136 if (cpuhw->info.cfvn < 1) in validate_ctr_version()
141 if (cpuhw->info.csvn < 1) in validate_ctr_version()
143 if ((cpuhw->info.csvn == 1 && hwc->config > 159) || in validate_ctr_version()
144 (cpuhw->info.csvn == 2 && hwc->config > 175) || in validate_ctr_version()
145 (cpuhw->info.csvn > 2 && hwc->config > 255)) in validate_ctr_version()
156 struct cpu_hw_events *cpuhw; in validate_ctr_auth() local
160 cpuhw = &get_cpu_var(cpu_hw_events); in validate_ctr_auth()
168 if (!(ctrs_state & cpuhw->info.auth_ctl)) in validate_ctr_auth()
182 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_enable() local
185 if (cpuhw->flags & PMU_F_ENABLED) in cpumf_pmu_enable()
188 err = lcctl(cpuhw->state); in cpumf_pmu_enable()
195 cpuhw->flags |= PMU_F_ENABLED; in cpumf_pmu_enable()
205 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_disable() local
209 if (!(cpuhw->flags & PMU_F_ENABLED)) in cpumf_pmu_disable()
212 inactive = cpuhw->state & ~((1 << CPUMF_LCCTL_ENABLE_SHIFT) - 1); in cpumf_pmu_disable()
220 cpuhw->flags &= ~PMU_F_ENABLED; in cpumf_pmu_disable()
233 struct cpu_hw_events *cpuhw; in cpumf_measurement_alert() local
239 cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_measurement_alert()
243 if (!(cpuhw->flags & PMU_F_RESERVED)) in cpumf_measurement_alert()
248 qctri(&cpuhw->info); in cpumf_measurement_alert()
259 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in setup_pmc_cpu() local
263 memset(&cpuhw->info, 0, sizeof(cpuhw->info)); in setup_pmc_cpu()
264 qctri(&cpuhw->info); in setup_pmc_cpu()
265 cpuhw->flags |= PMU_F_RESERVED; in setup_pmc_cpu()
269 cpuhw->flags &= ~PMU_F_RESERVED; in setup_pmc_cpu()
484 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_start() local
499 ctr_set_enable(&cpuhw->state, hwc->config_base); in cpumf_pmu_start()
500 ctr_set_start(&cpuhw->state, hwc->config_base); in cpumf_pmu_start()
510 atomic_inc(&cpuhw->ctr_set[hwc->config_base]); in cpumf_pmu_start()
515 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_stop() local
523 if (!atomic_dec_return(&cpuhw->ctr_set[hwc->config_base])) in cpumf_pmu_stop()
524 ctr_set_stop(&cpuhw->state, hwc->config_base); in cpumf_pmu_stop()
536 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_add() local
543 if (!(cpuhw->txn_flags & PERF_PMU_TXN_ADD)) in cpumf_pmu_add()
547 ctr_set_enable(&cpuhw->state, event->hw.config_base); in cpumf_pmu_add()
560 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_del() local
572 if (!atomic_read(&cpuhw->ctr_set[event->hw.config_base])) in cpumf_pmu_del()
573 ctr_set_disable(&cpuhw->state, event->hw.config_base); in cpumf_pmu_del()
588 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_start_txn() local
590 WARN_ON_ONCE(cpuhw->txn_flags); /* txn already in flight */ in cpumf_pmu_start_txn()
592 cpuhw->txn_flags = txn_flags; in cpumf_pmu_start_txn()
597 cpuhw->tx_state = cpuhw->state; in cpumf_pmu_start_txn()
608 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_cancel_txn() local
610 WARN_ON_ONCE(!cpuhw->txn_flags); /* no txn in flight */ in cpumf_pmu_cancel_txn()
612 txn_flags = cpuhw->txn_flags; in cpumf_pmu_cancel_txn()
613 cpuhw->txn_flags = 0; in cpumf_pmu_cancel_txn()
617 WARN_ON(cpuhw->tx_state != cpuhw->state); in cpumf_pmu_cancel_txn()
629 struct cpu_hw_events *cpuhw = this_cpu_ptr(&cpu_hw_events); in cpumf_pmu_commit_txn() local
632 WARN_ON_ONCE(!cpuhw->txn_flags); /* no txn in flight */ in cpumf_pmu_commit_txn()
634 if (cpuhw->txn_flags & ~PERF_PMU_TXN_ADD) { in cpumf_pmu_commit_txn()
635 cpuhw->txn_flags = 0; in cpumf_pmu_commit_txn()
640 state = cpuhw->state & ~((1 << CPUMF_LCCTL_ENABLE_SHIFT) - 1); in cpumf_pmu_commit_txn()
642 if ((state & cpuhw->info.auth_ctl) != state) in cpumf_pmu_commit_txn()
645 cpuhw->txn_flags = 0; in cpumf_pmu_commit_txn()