Re: [PATCH 1/2] perf iostat: Use system-wide mode if the target cpu_list is unspecified

From: Arnaldo Carvalho de Melo
Date: Mon Sep 27 2021 - 08:40:24 EST


Em Mon, Sep 27, 2021 at 04:11:14PM +0800, Like Xu escreveu:
> From: Like Xu <likexu@xxxxxxxxxxx>
>
> An iostate use case like "perf iostat 0000:16,0000:97 -- ls" should be
> implemented to work in system-wide mode to ensure that the output from
> print_header() is consistent with the user documentation perf-iostat.txt,
> rather than incorrectly assuming that the kernel does not support it:
>
> Error:
> The sys_perf_event_open() syscall returned with 22 (Invalid argument) \
> for event (uncore_iio_0/event=0x83,umask=0x04,ch_mask=0xF,fc_mask=0x07/).
> /bin/dmesg | grep -i perf may provide additional information.
>
> This error is easily fixed by assigning system-wide mode by default
> for IOSTAT_RUN only when the target cpu_list is unspecified.

Looks ok, added:

Fixes: f07952b179697771 ("perf stat: Basic support for iostat in perf")

For stable@xxxxxxxxxxxxxxx sake.

- Arnaldo

> Signed-off-by: Like Xu <likexu@xxxxxxxxxxx>
> ---
> tools/perf/builtin-stat.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
> index f6e87b7be5fa..f0ecfda34ece 100644
> --- a/tools/perf/builtin-stat.c
> +++ b/tools/perf/builtin-stat.c
> @@ -2408,6 +2408,8 @@ int cmd_stat(int argc, const char **argv)
> goto out;
> } else if (verbose)
> iostat_list(evsel_list, &stat_config);
> + if (iostat_mode == IOSTAT_RUN && !target__has_cpu(&target))
> + target.system_wide = true;
> }
>
> if (add_default_attributes())
> --
> 2.32.0

--

- Arnaldo