Lines Matching refs:event
41 struct perf_event *event; /* Perf event for sampling */ member
52 static void paicrypt_event_destroy(struct perf_event *event) in paicrypt_event_destroy() argument
54 struct paicrypt_map *cpump = per_cpu_ptr(&paicrypt_map, event->cpu); in paicrypt_event_destroy()
56 cpump->event = NULL; in paicrypt_event_destroy()
61 event->attr.config, event->cpu, in paicrypt_event_destroy()
87 static u64 paicrypt_getdata(struct perf_event *event, bool kernel) in paicrypt_getdata() argument
93 if (event->attr.config != PAI_CRYPTO_BASE) { in paicrypt_getdata()
95 event->attr.config - PAI_CRYPTO_BASE, in paicrypt_getdata()
109 static u64 paicrypt_getall(struct perf_event *event) in paicrypt_getall() argument
113 if (!event->attr.exclude_kernel) in paicrypt_getall()
114 sum += paicrypt_getdata(event, true); in paicrypt_getall()
115 if (!event->attr.exclude_user) in paicrypt_getall()
116 sum += paicrypt_getdata(event, false); in paicrypt_getall()
188 static int paicrypt_event_init(struct perf_event *event) in paicrypt_event_init() argument
190 struct perf_event_attr *a = &event->attr; in paicrypt_event_init()
195 if (a->type != PERF_TYPE_RAW && event->pmu->type != a->type) in paicrypt_event_init()
202 if (event->hw.target || event->cpu == -1) in paicrypt_event_init()
208 cpump = per_cpu_ptr(&paicrypt_map, event->cpu); in paicrypt_event_init()
218 event->hw.last_tag = 0; in paicrypt_event_init()
219 cpump->event = event; in paicrypt_event_init()
220 event->destroy = paicrypt_event_destroy; in paicrypt_event_init()
226 event->attach_state |= PERF_ATTACH_SCHED_CB; in paicrypt_event_init()
237 static void paicrypt_read(struct perf_event *event) in paicrypt_read() argument
241 prev = local64_read(&event->hw.prev_count); in paicrypt_read()
242 new = paicrypt_getall(event); in paicrypt_read()
243 local64_set(&event->hw.prev_count, new); in paicrypt_read()
246 local64_add(delta, &event->count); in paicrypt_read()
249 static void paicrypt_start(struct perf_event *event, int flags) in paicrypt_start() argument
253 if (!event->hw.last_tag) { in paicrypt_start()
254 event->hw.last_tag = 1; in paicrypt_start()
255 sum = paicrypt_getall(event); /* Get current value */ in paicrypt_start()
256 local64_set(&event->count, 0); in paicrypt_start()
257 local64_set(&event->hw.prev_count, sum); in paicrypt_start()
261 static int paicrypt_add(struct perf_event *event, int flags) in paicrypt_add() argument
271 cpump->event = event; in paicrypt_add()
272 if (flags & PERF_EF_START && !event->attr.sample_period) { in paicrypt_add()
274 paicrypt_start(event, PERF_EF_RELOAD); in paicrypt_add()
276 event->hw.state = 0; in paicrypt_add()
277 if (event->attr.sample_period) in paicrypt_add()
278 perf_sched_cb_inc(event->pmu); in paicrypt_add()
282 static void paicrypt_stop(struct perf_event *event, int flags) in paicrypt_stop() argument
284 paicrypt_read(event); in paicrypt_stop()
285 event->hw.state = PERF_HES_STOPPED; in paicrypt_stop()
288 static void paicrypt_del(struct perf_event *event, int flags) in paicrypt_del() argument
292 if (event->attr.sample_period) in paicrypt_del()
293 perf_sched_cb_dec(event->pmu); in paicrypt_del()
294 if (!event->attr.sample_period) in paicrypt_del()
296 paicrypt_stop(event, PERF_EF_UPDATE); in paicrypt_del()
333 struct perf_event *event = cpump->event; in paicrypt_push_sample() local
340 if (!cpump->event) /* No event active */ in paicrypt_push_sample()
343 cpump->event->attr.exclude_user, in paicrypt_push_sample()
344 cpump->event->attr.exclude_kernel); in paicrypt_push_sample()
352 perf_sample_data_init(&data, 0, event->hw.last_period); in paicrypt_push_sample()
353 if (event->attr.sample_type & PERF_SAMPLE_TID) { in paicrypt_push_sample()
357 if (event->attr.sample_type & PERF_SAMPLE_TIME) in paicrypt_push_sample()
358 data.time = event->clock(); in paicrypt_push_sample()
359 if (event->attr.sample_type & (PERF_SAMPLE_ID | PERF_SAMPLE_IDENTIFIER)) in paicrypt_push_sample()
360 data.id = event->id; in paicrypt_push_sample()
361 if (event->attr.sample_type & PERF_SAMPLE_CPU) { in paicrypt_push_sample()
365 if (event->attr.sample_type & PERF_SAMPLE_RAW) { in paicrypt_push_sample()
371 overflow = perf_event_overflow(event, &data, ®s); in paicrypt_push_sample()
372 perf_event_update_userpage(event); in paicrypt_push_sample()
406 PMU_FORMAT_ATTR(event, "config:0-63");