Lines Matching refs:p_event
27 struct perf_event *p_event) in perf_trace_event_perm() argument
30 int ret = tp_event->perf_perm(tp_event, p_event); in perf_trace_event_perm()
39 if (p_event->parent) in perf_trace_event_perm()
52 if (!is_sampling_event(p_event)) in perf_trace_event_perm()
60 if (!p_event->attr.exclude_callchain_user) in perf_trace_event_perm()
67 if (p_event->attr.sample_type & PERF_SAMPLE_STACK_USER) in perf_trace_event_perm()
72 if (!(p_event->attr.sample_type & PERF_SAMPLE_RAW)) in perf_trace_event_perm()
76 if (p_event->attach_state == PERF_ATTACH_TASK) { in perf_trace_event_perm()
92 struct perf_event *p_event) in perf_trace_event_reg() argument
98 p_event->tp_event = tp_event; in perf_trace_event_reg()
149 static void perf_trace_event_unreg(struct perf_event *p_event) in perf_trace_event_unreg() argument
151 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_unreg()
178 static int perf_trace_event_open(struct perf_event *p_event) in perf_trace_event_open() argument
180 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_open()
181 return tp_event->class->reg(tp_event, TRACE_REG_PERF_OPEN, p_event); in perf_trace_event_open()
184 static void perf_trace_event_close(struct perf_event *p_event) in perf_trace_event_close() argument
186 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_close()
187 tp_event->class->reg(tp_event, TRACE_REG_PERF_CLOSE, p_event); in perf_trace_event_close()
191 struct perf_event *p_event) in perf_trace_event_init() argument
195 ret = perf_trace_event_perm(tp_event, p_event); in perf_trace_event_init()
199 ret = perf_trace_event_reg(tp_event, p_event); in perf_trace_event_init()
203 ret = perf_trace_event_open(p_event); in perf_trace_event_init()
205 perf_trace_event_unreg(p_event); in perf_trace_event_init()
212 int perf_trace_init(struct perf_event *p_event) in perf_trace_init() argument
215 u64 event_id = p_event->attr.config; in perf_trace_init()
223 ret = perf_trace_event_init(tp_event, p_event); in perf_trace_init()
234 void perf_trace_destroy(struct perf_event *p_event) in perf_trace_destroy() argument
237 perf_trace_event_close(p_event); in perf_trace_destroy()
238 perf_trace_event_unreg(p_event); in perf_trace_destroy()
243 int perf_kprobe_init(struct perf_event *p_event, bool is_retprobe) in perf_kprobe_init() argument
249 if (p_event->attr.kprobe_func) { in perf_kprobe_init()
254 func, u64_to_user_ptr(p_event->attr.kprobe_func), in perf_kprobe_init()
268 func, (void *)(unsigned long)(p_event->attr.kprobe_addr), in perf_kprobe_init()
269 p_event->attr.probe_offset, is_retprobe); in perf_kprobe_init()
275 ret = perf_trace_event_init(tp_event, p_event); in perf_kprobe_init()
283 void perf_kprobe_destroy(struct perf_event *p_event) in perf_kprobe_destroy() argument
285 perf_trace_event_close(p_event); in perf_kprobe_destroy()
286 perf_trace_event_unreg(p_event); in perf_kprobe_destroy()
288 destroy_local_trace_kprobe(p_event->tp_event); in perf_kprobe_destroy()
293 int perf_uprobe_init(struct perf_event *p_event, bool is_retprobe) in perf_uprobe_init() argument
299 if (!p_event->attr.uprobe_path) in perf_uprobe_init()
305 path, u64_to_user_ptr(p_event->attr.uprobe_path), PATH_MAX); in perf_uprobe_init()
316 path, p_event->attr.probe_offset, is_retprobe); in perf_uprobe_init()
328 ret = perf_trace_event_init(tp_event, p_event); in perf_uprobe_init()
337 void perf_uprobe_destroy(struct perf_event *p_event) in perf_uprobe_destroy() argument
340 perf_trace_event_close(p_event); in perf_uprobe_destroy()
341 perf_trace_event_unreg(p_event); in perf_uprobe_destroy()
343 destroy_local_trace_uprobe(p_event->tp_event); in perf_uprobe_destroy()
347 int perf_trace_add(struct perf_event *p_event, int flags) in perf_trace_add() argument
349 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_add()
352 p_event->hw.state = PERF_HES_STOPPED; in perf_trace_add()
359 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_ADD, p_event)) { in perf_trace_add()
368 hlist_add_head_rcu(&p_event->hlist_entry, list); in perf_trace_add()
374 void perf_trace_del(struct perf_event *p_event, int flags) in perf_trace_del() argument
376 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_del()
383 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_DEL, p_event)) in perf_trace_del()
384 hlist_del_rcu(&p_event->hlist_entry); in perf_trace_del()