Lines Matching refs:pmu
104 if (type == event->pmu->type) in armpmu_map_event()
121 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_set_period()
163 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_update()
193 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_stop()
209 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_start()
234 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_del()
250 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_add()
283 validate_event(struct pmu *pmu, struct pmu_hw_events *hw_events, in validate_event() argument
296 if (event->pmu != pmu) in validate_event()
305 armpmu = to_arm_pmu(event->pmu); in validate_event()
321 if (!validate_event(event->pmu, &fake_pmu, leader)) in validate_group()
325 if (!validate_event(event->pmu, &fake_pmu, sibling)) in validate_group()
329 if (!validate_event(event->pmu, &fake_pmu, event)) in validate_group()
369 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in __hw_perf_event_init()
431 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_init()
454 static void armpmu_enable(struct pmu *pmu) in armpmu_enable() argument
456 struct arm_pmu *armpmu = to_arm_pmu(pmu); in armpmu_enable()
468 static void armpmu_disable(struct pmu *pmu) in armpmu_disable() argument
470 struct arm_pmu *armpmu = to_arm_pmu(pmu); in armpmu_disable()
486 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_filter_match()
610 static int armpmu_get_cpu_irq(struct arm_pmu *pmu, int cpu) in armpmu_get_cpu_irq() argument
612 struct pmu_hw_events __percpu *hw_events = pmu->hw_events; in armpmu_get_cpu_irq()
624 struct arm_pmu *pmu = hlist_entry_safe(node, struct arm_pmu, node); in arm_perf_starting_cpu() local
627 if (!cpumask_test_cpu(cpu, &pmu->supported_cpus)) in arm_perf_starting_cpu()
629 if (pmu->reset) in arm_perf_starting_cpu()
630 pmu->reset(pmu); in arm_perf_starting_cpu()
632 per_cpu(cpu_armpmu, cpu) = pmu; in arm_perf_starting_cpu()
634 irq = armpmu_get_cpu_irq(pmu, cpu); in arm_perf_starting_cpu()
647 struct arm_pmu *pmu = hlist_entry_safe(node, struct arm_pmu, node); in arm_perf_teardown_cpu() local
650 if (!cpumask_test_cpu(cpu, &pmu->supported_cpus)) in arm_perf_teardown_cpu()
653 irq = armpmu_get_cpu_irq(pmu, cpu); in arm_perf_teardown_cpu()
790 struct arm_pmu *pmu; in __armpmu_alloc() local
793 pmu = kzalloc(sizeof(*pmu), flags); in __armpmu_alloc()
794 if (!pmu) { in __armpmu_alloc()
799 pmu->hw_events = alloc_percpu_gfp(struct pmu_hw_events, flags); in __armpmu_alloc()
800 if (!pmu->hw_events) { in __armpmu_alloc()
805 pmu->pmu = (struct pmu) { in __armpmu_alloc()
815 .attr_groups = pmu->attr_groups, in __armpmu_alloc()
826 pmu->attr_groups[ARMPMU_ATTR_GROUP_COMMON] = in __armpmu_alloc()
832 events = per_cpu_ptr(pmu->hw_events, cpu); in __armpmu_alloc()
834 events->percpu_pmu = pmu; in __armpmu_alloc()
837 return pmu; in __armpmu_alloc()
840 kfree(pmu); in __armpmu_alloc()
856 void armpmu_free(struct arm_pmu *pmu) in armpmu_free() argument
858 free_percpu(pmu->hw_events); in armpmu_free()
859 kfree(pmu); in armpmu_free()
862 int armpmu_register(struct arm_pmu *pmu) in armpmu_register() argument
866 ret = cpu_pmu_init(pmu); in armpmu_register()
870 ret = perf_pmu_register(&pmu->pmu, pmu->name, -1); in armpmu_register()
875 __oprofile_cpu_pmu = pmu; in armpmu_register()
878 pmu->name, pmu->num_events); in armpmu_register()
883 cpu_pmu_destroy(pmu); in armpmu_register()