Re: [PATCH RFC 01/21] libperf evsel: Factor out perf_evsel__ioctl()

Arnaldo Carvalho de Melo
2022-04-22T20:00:21Z

Em Fri, Apr 22, 2022 at 07:23:42PM +0300, Adrian Hunter escreveu:
> Factor out perf_evsel__ioctl() so it can be reused.

Cherry picking this one as I look at the patchset.

- Arnaldo

> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> ---
> tools/lib/perf/evsel.c | 19 ++++++++++++-------
> 1 file changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/tools/lib/perf/evsel.c b/tools/lib/perf/evsel.c
> index 210ea7c06ce8..20ae9f5f8b30 100644
> --- a/tools/lib/perf/evsel.c
> +++ b/tools/lib/perf/evsel.c
> @@ -328,6 +328,17 @@ int perf_evsel__read(struct perf_evsel *evsel, int cpu_map_idx, int thread,
> return 0;
> }
>
> +static int perf_evsel__ioctl(struct perf_evsel *evsel, int ioc, void *arg,
> + int cpu_map_idx, int thread)
> +{
> + int *fd = FD(evsel, cpu_map_idx, thread);
> +
> + if (fd == NULL || *fd < 0)
> + return -1;
> +
> + return ioctl(*fd, ioc, arg);
> +}
> +
> static int perf_evsel__run_ioctl(struct perf_evsel *evsel,
> int ioc, void *arg,
> int cpu_map_idx)
> @@ -335,13 +346,7 @@ static int perf_evsel__run_ioctl(struct perf_evsel *evsel,
> int thread;
>
> for (thread = 0; thread < xyarray__max_y(evsel->fd); thread++) {
> - int err;
> - int *fd = FD(evsel, cpu_map_idx, thread);
> -
> - if (fd == NULL || *fd < 0)
> - return -1;
> -
> - err = ioctl(*fd, ioc, arg);
> + int err = perf_evsel__ioctl(evsel, ioc, arg, cpu_map_idx, thread);
>
> if (err)
> return err;
> --
> 2.25.1

--

- Arnaldo