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

Alexander Antonov
2021-09-28T09:06:43Z

On 9/27/2021 11:11 AM, Like Xu wrote:
> From: Like Xu <likexu@tencent.com>
>
> 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.
Hello,
Thank you for your fixes.

Tested-by: Alexander Antonov <alexander.antonov@linux.intel.com>
> Signed-off-by: Like Xu <likexu@tencent.com>
> ---
> 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())