Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 133de940 authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy



The "/proc/kcore requires CAP_SYS_RAWIO" message comes up all the time
for 'perf script' if vmlinux is not found and the user isn't root, even
when the kernel is not being traced and even though the message is only
really relevant for annotation.

Change it to pr_debug and instead put a note in the message displayed if
annotation is not possible.

Also, the file being accessed might not be /proc/kcore.  Tools can be
directed to a different location using the --kallsyms option in which
case kcore is expected to be in the same directory.  Adjust the message
so it is not misleading in that case.

Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Li Zhang <zhlcindy@linux.vnet.ibm.com>
Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Link: http://lkml.kernel.org/r/1440065260-8802-1-git-send-email-adrian.hunter@intel.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 05169df5
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1126,6 +1126,7 @@ int symbol__annotate(struct symbol *sym, struct map *map, size_t privsize)
		dso->annotate_warned = 1;
		dso->annotate_warned = 1;
		pr_err("Can't annotate %s:\n\n"
		pr_err("Can't annotate %s:\n\n"
		       "No vmlinux file%s\nwas found in the path.\n\n"
		       "No vmlinux file%s\nwas found in the path.\n\n"
		       "Note that annotation using /proc/kcore requires CAP_SYS_RAWIO capability.\n\n"
		       "Please use:\n\n"
		       "Please use:\n\n"
		       "  perf buildid-cache -vu vmlinux\n\n"
		       "  perf buildid-cache -vu vmlinux\n\n"
		       "or:\n\n"
		       "or:\n\n"
+2 −2
Original line number Original line Diff line number Diff line
@@ -1138,7 +1138,7 @@ static int dso__load_kcore(struct dso *dso, struct map *map,


	fd = open(kcore_filename, O_RDONLY);
	fd = open(kcore_filename, O_RDONLY);
	if (fd < 0) {
	if (fd < 0) {
		pr_err("%s requires CAP_SYS_RAWIO capability to access.\n",
		pr_debug("Failed to open %s. Note /proc/kcore requires CAP_SYS_RAWIO capability to access.\n",
			 kcore_filename);
			 kcore_filename);
		return -EINVAL;
		return -EINVAL;
	}
	}