• Home
  • Raw
  • Download

Lines Matching refs:event

83 armpmu_map_event(struct perf_event *event,  in armpmu_map_event()  argument
91 u64 config = event->attr.config; in armpmu_map_event()
92 int type = event->attr.type; in armpmu_map_event()
94 if (type == event->pmu->type) in armpmu_map_event()
109 int armpmu_event_set_period(struct perf_event *event) in armpmu_event_set_period() argument
111 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_set_period()
112 struct hw_perf_event *hwc = &event->hw; in armpmu_event_set_period()
142 armpmu->write_counter(event, (u64)(-left) & 0xffffffff); in armpmu_event_set_period()
144 perf_event_update_userpage(event); in armpmu_event_set_period()
149 u64 armpmu_event_update(struct perf_event *event) in armpmu_event_update() argument
151 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_update()
152 struct hw_perf_event *hwc = &event->hw; in armpmu_event_update()
157 new_raw_count = armpmu->read_counter(event); in armpmu_event_update()
165 local64_add(delta, &event->count); in armpmu_event_update()
172 armpmu_read(struct perf_event *event) in armpmu_read() argument
174 armpmu_event_update(event); in armpmu_read()
178 armpmu_stop(struct perf_event *event, int flags) in armpmu_stop() argument
180 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_stop()
181 struct hw_perf_event *hwc = &event->hw; in armpmu_stop()
188 armpmu->disable(event); in armpmu_stop()
189 armpmu_event_update(event); in armpmu_stop()
194 static void armpmu_start(struct perf_event *event, int flags) in armpmu_start() argument
196 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_start()
197 struct hw_perf_event *hwc = &event->hw; in armpmu_start()
214 armpmu_event_set_period(event); in armpmu_start()
215 armpmu->enable(event); in armpmu_start()
219 armpmu_del(struct perf_event *event, int flags) in armpmu_del() argument
221 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_del()
223 struct hw_perf_event *hwc = &event->hw; in armpmu_del()
226 armpmu_stop(event, PERF_EF_UPDATE); in armpmu_del()
230 armpmu->clear_event_idx(hw_events, event); in armpmu_del()
232 perf_event_update_userpage(event); in armpmu_del()
236 armpmu_add(struct perf_event *event, int flags) in armpmu_add() argument
238 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_add()
240 struct hw_perf_event *hwc = &event->hw; in armpmu_add()
248 idx = armpmu->get_event_idx(hw_events, event); in armpmu_add()
256 event->hw.idx = idx; in armpmu_add()
257 armpmu->disable(event); in armpmu_add()
258 hw_events->events[idx] = event; in armpmu_add()
262 armpmu_start(event, PERF_EF_RELOAD); in armpmu_add()
265 perf_event_update_userpage(event); in armpmu_add()
272 struct perf_event *event) in validate_event() argument
276 if (is_software_event(event)) in validate_event()
284 if (event->pmu != pmu) in validate_event()
287 if (event->state < PERF_EVENT_STATE_OFF) in validate_event()
290 if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec) in validate_event()
293 armpmu = to_arm_pmu(event->pmu); in validate_event()
294 return armpmu->get_event_idx(hw_events, event) >= 0; in validate_event()
298 validate_group(struct perf_event *event) in validate_group() argument
300 struct perf_event *sibling, *leader = event->group_leader; in validate_group()
309 if (!validate_event(event->pmu, &fake_pmu, leader)) in validate_group()
313 if (!validate_event(event->pmu, &fake_pmu, sibling)) in validate_group()
317 if (!validate_event(event->pmu, &fake_pmu, event)) in validate_group()
366 __hw_perf_event_init(struct perf_event *event) in __hw_perf_event_init() argument
368 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in __hw_perf_event_init()
369 struct hw_perf_event *hwc = &event->hw; in __hw_perf_event_init()
372 mapping = armpmu->map_event(event); in __hw_perf_event_init()
375 pr_debug("event %x:%llx not supported\n", event->attr.type, in __hw_perf_event_init()
376 event->attr.config); in __hw_perf_event_init()
395 armpmu->set_event_filter(hwc, &event->attr)) && in __hw_perf_event_init()
396 event_requires_mode_exclusion(&event->attr)) { in __hw_perf_event_init()
407 if (!is_sampling_event(event)) { in __hw_perf_event_init()
419 if (event->group_leader != event) { in __hw_perf_event_init()
420 if (validate_group(event) != 0) in __hw_perf_event_init()
427 static int armpmu_event_init(struct perf_event *event) in armpmu_event_init() argument
429 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_event_init()
438 if (event->cpu != -1 && in armpmu_event_init()
439 !cpumask_test_cpu(event->cpu, &armpmu->supported_cpus)) in armpmu_event_init()
443 if (has_branch_stack(event)) in armpmu_event_init()
446 if (armpmu->map_event(event) == -ENOENT) in armpmu_event_init()
449 return __hw_perf_event_init(event); in armpmu_event_init()
482 static int armpmu_filter_match(struct perf_event *event) in armpmu_filter_match() argument
484 struct arm_pmu *armpmu = to_arm_pmu(event->pmu); in armpmu_filter_match()
490 return armpmu->filter_match(event); in armpmu_filter_match()
686 struct perf_event *event; in cpu_pm_pmu_setup() local
697 event = hw_events->events[idx]; in cpu_pm_pmu_setup()
704 armpmu_stop(event, PERF_EF_UPDATE); in cpu_pm_pmu_setup()
720 RCU_NONIDLE(armpmu_start(event, PERF_EF_RELOAD)); in cpu_pm_pmu_setup()