Slightly off-topic, but On 09/02, Jiri Olsa wrote: > > @@ -11144,7 +11147,7 @@ static int perf_uprobe_event_init(struct perf_event > *event) > { > int err; > unsigned long ref_ctr_offset; > - bool is_retprobe; > + bool is_retprobe, is_unique; > > if (event->attr.type != perf_uprobe.type) > return -ENOENT; > @@ -11159,8 +11162,9 @@ static int perf_uprobe_event_init(struct perf_event > *event) > return -EOPNOTSUPP; > > is_retprobe = event->attr.config & PERF_PROBE_CONFIG_IS_RETPROBE; > + is_unique = event->attr.config & PERF_PROBE_CONFIG_IS_UNIQUE; > ref_ctr_offset = event->attr.config >> PERF_UPROBE_REF_CTR_OFFSET_SHIFT; > - err = perf_uprobe_init(event, ref_ctr_offset, is_retprobe); > + err = perf_uprobe_init(event, ref_ctr_offset, is_retprobe, is_unique);
I am wondering why (with or without this change) perf_uprobe_init() needs the additional arguments besides "event". It can look at event->attr.config itself? Same for perf_kprobe_init()... Oleg.