Lines Matching refs:parent_event
2189 struct perf_event *parent_event = event->parent; in perf_child_detach() local
2196 if (WARN_ON_ONCE(!parent_event)) in perf_child_detach()
2199 lockdep_assert_held(&parent_event->child_mutex); in perf_child_detach()
11822 struct perf_event *parent_event, in perf_event_alloc() argument
11881 event->parent = parent_event; in perf_event_alloc()
11888 if (parent_event) in perf_event_alloc()
11889 event->event_caps = parent_event->event_caps; in perf_event_alloc()
11902 if (parent_event) in perf_event_alloc()
11903 event->clock = parent_event->clock; in perf_event_alloc()
11905 if (!overflow_handler && parent_event) { in perf_event_alloc()
11906 overflow_handler = parent_event->overflow_handler; in perf_event_alloc()
11907 context = parent_event->overflow_handler_context; in perf_event_alloc()
11910 struct bpf_prog *prog = parent_event->prog; in perf_event_alloc()
11915 parent_event->orig_overflow_handler; in perf_event_alloc()
12949 struct perf_event *parent_event = child_event->parent; in sync_child_event() local
12964 atomic64_add(child_val, &parent_event->child_count); in sync_child_event()
12966 &parent_event->child_total_time_enabled); in sync_child_event()
12968 &parent_event->child_total_time_running); in sync_child_event()
12974 struct perf_event *parent_event = event->parent; in perf_event_exit_event() local
12977 if (parent_event) { in perf_event_exit_event()
12991 mutex_lock(&parent_event->child_mutex); in perf_event_exit_event()
13004 if (parent_event) { in perf_event_exit_event()
13005 mutex_unlock(&parent_event->child_mutex); in perf_event_exit_event()
13009 perf_event_wakeup(parent_event); in perf_event_exit_event()
13011 put_event(parent_event); in perf_event_exit_event()
13235 inherit_event(struct perf_event *parent_event, in inherit_event() argument
13242 enum perf_event_state parent_state = parent_event->state; in inherit_event()
13253 if (parent_event->parent) in inherit_event()
13254 parent_event = parent_event->parent; in inherit_event()
13256 child_event = perf_event_alloc(&parent_event->attr, in inherit_event()
13257 parent_event->cpu, in inherit_event()
13259 group_leader, parent_event, in inherit_event()
13277 mutex_lock(&parent_event->child_mutex); in inherit_event()
13278 if (is_orphaned_event(parent_event) || in inherit_event()
13279 !atomic_long_inc_not_zero(&parent_event->refcount)) { in inherit_event()
13280 mutex_unlock(&parent_event->child_mutex); in inherit_event()
13298 if (parent_event->attr.freq) { in inherit_event()
13299 u64 sample_period = parent_event->hw.sample_period; in inherit_event()
13309 child_event->overflow_handler = parent_event->overflow_handler; in inherit_event()
13311 = parent_event->overflow_handler_context; in inherit_event()
13330 list_add_tail(&child_event->child_list, &parent_event->child_list); in inherit_event()
13331 mutex_unlock(&parent_event->child_mutex); in inherit_event()
13346 static int inherit_group(struct perf_event *parent_event, in inherit_group() argument
13356 leader = inherit_event(parent_event, parent, parent_ctx, in inherit_group()
13365 for_each_sibling_event(sub, parent_event) { in inherit_group()
13371 if (sub->aux_event == parent_event && child_ctr && in inherit_group()
13376 leader->group_generation = parent_event->group_generation; in inherit_group()