Lines Matching refs:event

128 static int map_cpu_event(struct perf_event *event,  in map_cpu_event()  argument
136 u64 config = event->attr.config; in map_cpu_event()
138 switch (event->attr.type) { in map_cpu_event()
151 armpmu_event_set_period(struct perf_event *event, in armpmu_event_set_period() argument
155 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_set_period()
187 perf_event_update_userpage(event); in armpmu_event_set_period()
193 armpmu_event_update(struct perf_event *event, in armpmu_event_update() argument
197 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_update()
210 local64_add(delta, &event->count); in armpmu_event_update()
217 armpmu_read(struct perf_event *event) in armpmu_read() argument
219 struct hw_perf_event *hwc = &event->hw; in armpmu_read()
225 armpmu_event_update(event, hwc, hwc->idx); in armpmu_read()
229 armpmu_stop(struct perf_event *event, int flags) in armpmu_stop() argument
231 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_stop()
232 struct hw_perf_event *hwc = &event->hw; in armpmu_stop()
241 armpmu_event_update(event, hwc, hwc->idx); in armpmu_stop()
247 armpmu_start(struct perf_event *event, int flags) in armpmu_start() argument
249 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_start()
250 struct hw_perf_event *hwc = &event->hw; in armpmu_start()
267 armpmu_event_set_period(event, hwc, hwc->idx); in armpmu_start()
272 armpmu_del(struct perf_event *event, int flags) in armpmu_del() argument
274 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_del()
276 struct hw_perf_event *hwc = &event->hw; in armpmu_del()
281 armpmu_stop(event, PERF_EF_UPDATE); in armpmu_del()
285 perf_event_update_userpage(event); in armpmu_del()
289 armpmu_add(struct perf_event *event, int flags) in armpmu_add() argument
291 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_add()
293 struct hw_perf_event *hwc = &event->hw; in armpmu_add()
297 perf_pmu_disable(event->pmu); in armpmu_add()
310 event->hw.idx = idx; in armpmu_add()
312 hw_events->events[idx] = event; in armpmu_add()
316 armpmu_start(event, PERF_EF_RELOAD); in armpmu_add()
319 perf_event_update_userpage(event); in armpmu_add()
322 perf_pmu_enable(event->pmu); in armpmu_add()
328 struct perf_event *event) in validate_event() argument
331 struct hw_perf_event fake_event = event->hw; in validate_event()
332 struct pmu *leader_pmu = event->group_leader->pmu; in validate_event()
334 if (is_software_event(event)) in validate_event()
342 if (event->pmu != pmu) in validate_event()
345 if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF) in validate_event()
348 if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec) in validate_event()
351 armpmu = to_arm_pmu(event->pmu); in validate_event()
356 validate_group(struct perf_event *event) in validate_group() argument
358 struct perf_event *sibling, *leader = event->group_leader; in validate_group()
369 if (!validate_event(event->pmu, &fake_pmu, leader)) in validate_group()
373 if (!validate_event(event->pmu, &fake_pmu, sibling)) in validate_group()
377 if (!validate_event(event->pmu, &fake_pmu, event)) in validate_group()
508 hw_perf_event_destroy(struct perf_event *event) in hw_perf_event_destroy() argument
510 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in hw_perf_event_destroy()
528 __hw_perf_event_init(struct perf_event *event) in __hw_perf_event_init() argument
530 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in __hw_perf_event_init()
531 struct hw_perf_event *hwc = &event->hw; in __hw_perf_event_init()
534 mapping = armpmu->map_event(event); in __hw_perf_event_init()
537 pr_debug("event %x:%llx not supported\n", event->attr.type, in __hw_perf_event_init()
538 event->attr.config); in __hw_perf_event_init()
557 armpmu->set_event_filter(hwc, &event->attr)) && in __hw_perf_event_init()
558 event_requires_mode_exclusion(&event->attr)) { in __hw_perf_event_init()
581 if (event->group_leader != event) { in __hw_perf_event_init()
582 err = validate_group(event); in __hw_perf_event_init()
590 static int armpmu_event_init(struct perf_event *event) in armpmu_event_init() argument
592 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_init()
596 if (armpmu->map_event(event) == -ENOENT) in armpmu_event_init()
599 event->destroy = hw_perf_event_destroy; in armpmu_event_init()
614 err = __hw_perf_event_init(event); in armpmu_event_init()
616 hw_perf_event_destroy(event); in armpmu_event_init()
1124 struct perf_event *event = cpuc->events[idx]; in armv8pmu_handle_irq() local
1128 if (!event) in armv8pmu_handle_irq()
1138 hwc = &event->hw; in armv8pmu_handle_irq()
1139 armpmu_event_update(event, hwc, idx); in armv8pmu_handle_irq()
1141 if (!armpmu_event_set_period(event, hwc, idx)) in armv8pmu_handle_irq()
1144 if (perf_event_overflow(event, &data, regs)) in armv8pmu_handle_irq()
1183 struct hw_perf_event *event) in armv8pmu_get_event_idx() argument
1186 unsigned long evtype = event->config_base & ARMV8_EVTYPE_EVENT; in armv8pmu_get_event_idx()
1212 static int armv8pmu_set_event_filter(struct hw_perf_event *event, in armv8pmu_set_event_filter() argument
1230 event->config_base = config_base; in armv8pmu_set_event_filter()
1247 static int armv8_pmuv3_map_event(struct perf_event *event) in armv8_pmuv3_map_event() argument
1249 return map_cpu_event(event, &armv8_pmuv3_perf_map, in armv8_pmuv3_map_event()