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

From: Masami Hiramatsu
Date: Fri Jun 04 2021 - 11:31:15 EST


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",