perf tools: /proc/kcore requires CAP_SYS_RAWIO message too noisy
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 20 Aug 2015 10:07:40 +0000 (13:07 +0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 21 Aug 2015 13:29:23 +0000 (10:29 -0300)
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: Adrian 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: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/annotate.c
tools/perf/util/symbol.c

index 8a18347709e100ad68390291235d9d43dba12ae4..d1eece70b84d6e00c527ccd6027362517013aba8 100644 (file)
@@ -1126,6 +1126,7 @@ fallback:
                dso->annotate_warned = 1;
                pr_err("Can't annotate %s:\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"
                       "  perf buildid-cache -vu vmlinux\n\n"
                       "or:\n\n"
index 725640fd7cd80b88c6f2b17ae46fc77585cc1d33..42e98ab5a9bba86a7f0d4196b75c0fcdca81004c 100644 (file)
@@ -1138,8 +1138,8 @@ static int dso__load_kcore(struct dso *dso, struct map *map,
 
        fd = open(kcore_filename, O_RDONLY);
        if (fd < 0) {
-               pr_err("%s requires CAP_SYS_RAWIO capability to access.\n",
-                       kcore_filename);
+               pr_debug("Failed to open %s. Note /proc/kcore requires CAP_SYS_RAWIO capability to access.\n",
+                        kcore_filename);
                return -EINVAL;
        }