Messages in this thread | | | From | "" <> | Subject | RE: [RFC PATCH v2 3/7] libperf: Add perf_evsel__{refresh, period}() functions | Date | Mon, 11 Apr 2022 08:29:20 +0000 |
| |
Hi jirka
> On Fri, Mar 25, 2022 at 01:38:25PM +0900, Shunsuke Nakamura wrote: > > SNIP > > > +int perf_evsel__refresh_cpu(struct perf_evsel *evsel, int refresh, > > +int cpu_map_idx) { > > + return perf_evsel__run_ioctl(evsel, PERF_EVENT_IOC_REFRESH, > refresh, > > +cpu_map_idx); } > > + > > +int perf_evsel__refresh(struct perf_evsel *evsel, int refresh) { > > + int i; > > + int err = 0; > > + > > + for (i = 0; i < xyarray__max_x(evsel->fd) && !err; i++) > > + err = perf_evsel__run_ioctl(evsel, PERF_EVENT_IOC_REFRESH, > refresh, i); > > + return err; > > +} > > + > > +int perf_evsel__period_cpu(struct perf_evsel *evsel, __u64 period, > > +int cpu_map_idx) { > > + struct perf_event_attr *attr; > > + int err = 0; > > + > > + attr = perf_evsel__attr(evsel); > > + if (!attr) > > + return -EINVAL; > > + > > + err = perf_evsel__run_ioctl(evsel, PERF_EVENT_IOC_PERIOD, > > + (unsigned long)&period, cpu_map_idx); > > + if (err) > > + return err; > > + > > + attr->sample_period = period; > > what's the point in updating attr? this will be used after event is created right? > This is to maintain consistency between evsel->attr->sample_period and the sample_period of the created event. Users can reference evsel->attr->sample_period using perf_evsel__attr(). So I thought it was necessary to update the sample_period of the event and the sample_period of evsel to avoid discrepancies.
Best Regards Shunsuke
| |