Lines Matching refs:p_event
28 struct perf_event *p_event) in perf_trace_event_perm() argument
33 ret = tp_event->perf_perm(tp_event, p_event); in perf_trace_event_perm()
42 if (p_event->parent) in perf_trace_event_perm()
52 ret = perf_allow_tracepoint(&p_event->attr); in perf_trace_event_perm()
56 if (!is_sampling_event(p_event)) in perf_trace_event_perm()
64 if (!p_event->attr.exclude_callchain_user) in perf_trace_event_perm()
71 if (p_event->attr.sample_type & PERF_SAMPLE_STACK_USER) in perf_trace_event_perm()
76 if (!(p_event->attr.sample_type & PERF_SAMPLE_RAW)) in perf_trace_event_perm()
80 if (p_event->attach_state == PERF_ATTACH_TASK) { in perf_trace_event_perm()
89 ret = perf_allow_tracepoint(&p_event->attr); in perf_trace_event_perm()
97 struct perf_event *p_event) in perf_trace_event_reg() argument
103 p_event->tp_event = tp_event; in perf_trace_event_reg()
154 static void perf_trace_event_unreg(struct perf_event *p_event) in perf_trace_event_unreg() argument
156 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_unreg()
183 static int perf_trace_event_open(struct perf_event *p_event) in perf_trace_event_open() argument
185 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_open()
186 return tp_event->class->reg(tp_event, TRACE_REG_PERF_OPEN, p_event); in perf_trace_event_open()
189 static void perf_trace_event_close(struct perf_event *p_event) in perf_trace_event_close() argument
191 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_event_close()
192 tp_event->class->reg(tp_event, TRACE_REG_PERF_CLOSE, p_event); in perf_trace_event_close()
196 struct perf_event *p_event) in perf_trace_event_init() argument
200 ret = perf_trace_event_perm(tp_event, p_event); in perf_trace_event_init()
204 ret = perf_trace_event_reg(tp_event, p_event); in perf_trace_event_init()
208 ret = perf_trace_event_open(p_event); in perf_trace_event_init()
210 perf_trace_event_unreg(p_event); in perf_trace_event_init()
217 int perf_trace_init(struct perf_event *p_event) in perf_trace_init() argument
220 u64 event_id = p_event->attr.config; in perf_trace_init()
228 ret = perf_trace_event_init(tp_event, p_event); in perf_trace_init()
239 void perf_trace_destroy(struct perf_event *p_event) in perf_trace_destroy() argument
242 perf_trace_event_close(p_event); in perf_trace_destroy()
243 perf_trace_event_unreg(p_event); in perf_trace_destroy()
248 int perf_kprobe_init(struct perf_event *p_event, bool is_retprobe) in perf_kprobe_init() argument
254 if (p_event->attr.kprobe_func) { in perf_kprobe_init()
259 func, u64_to_user_ptr(p_event->attr.kprobe_func), in perf_kprobe_init()
273 func, (void *)(unsigned long)(p_event->attr.kprobe_addr), in perf_kprobe_init()
274 p_event->attr.probe_offset, is_retprobe); in perf_kprobe_init()
281 ret = perf_trace_event_init(tp_event, p_event); in perf_kprobe_init()
290 void perf_kprobe_destroy(struct perf_event *p_event) in perf_kprobe_destroy() argument
293 perf_trace_event_close(p_event); in perf_kprobe_destroy()
294 perf_trace_event_unreg(p_event); in perf_kprobe_destroy()
297 destroy_local_trace_kprobe(p_event->tp_event); in perf_kprobe_destroy()
302 int perf_uprobe_init(struct perf_event *p_event, in perf_uprobe_init() argument
309 if (!p_event->attr.uprobe_path) in perf_uprobe_init()
312 path = strndup_user(u64_to_user_ptr(p_event->attr.uprobe_path), in perf_uprobe_init()
323 tp_event = create_local_trace_uprobe(path, p_event->attr.probe_offset, in perf_uprobe_init()
336 ret = perf_trace_event_init(tp_event, p_event); in perf_uprobe_init()
345 void perf_uprobe_destroy(struct perf_event *p_event) in perf_uprobe_destroy() argument
348 perf_trace_event_close(p_event); in perf_uprobe_destroy()
349 perf_trace_event_unreg(p_event); in perf_uprobe_destroy()
351 destroy_local_trace_uprobe(p_event->tp_event); in perf_uprobe_destroy()
355 int perf_trace_add(struct perf_event *p_event, int flags) in perf_trace_add() argument
357 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_add()
360 p_event->hw.state = PERF_HES_STOPPED; in perf_trace_add()
367 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_ADD, p_event)) { in perf_trace_add()
376 hlist_add_head_rcu(&p_event->hlist_entry, list); in perf_trace_add()
382 void perf_trace_del(struct perf_event *p_event, int flags) in perf_trace_del() argument
384 struct trace_event_call *tp_event = p_event->tp_event; in perf_trace_del()
391 if (!tp_event->class->reg(tp_event, TRACE_REG_PERF_DEL, p_event)) in perf_trace_del()
392 hlist_del_rcu(&p_event->hlist_entry); in perf_trace_del()