Re: [PATCH 2/2] perf/probe: Report permission error for tracefs error

From: Arnaldo Carvalho de Melo
Date: Fri Jun 04 2021 - 15:18:40 EST


Em Sat, Jun 05, 2021 at 12:31:08AM +0900, Masami Hiramatsu escreveu:
> Report permission error for the tracefs access error.
> This can happen when non-superuser runs perf probe.
> With this patch, perf probe shows the following message.
>
> $ perf probe -l
> No permission to access tracefs. Please run this command again with sudo.
> Error: Failed to show event list.
>
> Signed-off-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> ---
> tools/perf/util/probe-file.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/perf/util/probe-file.c b/tools/perf/util/probe-file.c
> index 52273542e6ef..52d878f5a44d 100644
> --- a/tools/perf/util/probe-file.c
> +++ b/tools/perf/util/probe-file.c
> @@ -48,6 +48,8 @@ static void print_open_warning(int err, bool uprobe)
> uprobe ? 'u' : 'k', config);
> } else if (err == -ENOTSUP)
> pr_warning("Tracefs or debugfs is not mounted.\n");
> + else if (err == -EACCES)
> + pr_warning("No permission to access tracefs. Please run this command again with sudo.\n");
> else
> pr_warning("Failed to open %cprobe_events: %s\n",
> uprobe ? 'u' : 'k',
> @@ -62,6 +64,8 @@ static void print_both_open_warning(int kerr, int uerr)
> else if (kerr == -ENOENT && uerr == -ENOENT)
> pr_warning("Please rebuild kernel with CONFIG_KPROBE_EVENTS "
> "or/and CONFIG_UPROBE_EVENTS.\n");
> + else if (kerr == -EACCES && uerr == -EACCES)
> + pr_warning("No permission to access tracefs. Please run this command again with sudo.\n");
> else {
> char sbuf[STRERR_BUFSIZE];
> pr_warning("Failed to open kprobe events: %s.\n",

This one doesn't look so helpful, as running as root usually will allow
things to proceed.

'perf trace' does:

⬢[acme@toolbox pahole]$ perf trace ls
Error: No permissions to read /sys/kernel/tracing/events/raw_syscalls/sys_(enter|exit)
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/tracing/'

⬢[acme@toolbox pahole]$

Which would be less drastic than requiring full superuser access.

- Arnaldo