diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-02-13 14:45:24 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2017-02-13 15:22:33 -0500 |
commit | d6195a6a2c247515d5832debb51c03a74dc3f8f6 (patch) | |
tree | 18a5f7ae1648ab4167c8f2db7fd372b031bce600 /tools | |
parent | e8c6f437fd12d39e462962eaed2315bac597d34c (diff) |
perf evsel: Inform how to make a sysctl setting permanent
When a tool can't open counters due to the kernel.perf_event_paranoit
sysctl setting, we inform how to tweak it to allow the operation to
succeed, in addition to that, suggest setting /etc/sysctl.conf to
make the setting permanent.
Suggested-by: Ingo Molnar <mingo@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-4gwe99k4a6p12d4u8bbyttj2@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/perf/builtin-record.c | 2 | ||||
-rw-r--r-- | tools/perf/builtin-stat.c | 2 | ||||
-rw-r--r-- | tools/perf/builtin-top.c | 2 | ||||
-rw-r--r-- | tools/perf/util/evsel.c | 4 |
4 files changed, 6 insertions, 4 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index ffac8ca9fb01..2ddf189968dc 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c | |||
@@ -418,7 +418,7 @@ static int record__mmap(struct record *rec) | |||
418 | 418 | ||
419 | static int record__open(struct record *rec) | 419 | static int record__open(struct record *rec) |
420 | { | 420 | { |
421 | char msg[512]; | 421 | char msg[BUFSIZ]; |
422 | struct perf_evsel *pos; | 422 | struct perf_evsel *pos; |
423 | struct perf_evlist *evlist = rec->evlist; | 423 | struct perf_evlist *evlist = rec->evlist; |
424 | struct perf_session *session = rec->session; | 424 | struct perf_session *session = rec->session; |
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index a02f2e965628..f28719178b51 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c | |||
@@ -533,7 +533,7 @@ static int store_counter_ids(struct perf_evsel *counter) | |||
533 | static int __run_perf_stat(int argc, const char **argv) | 533 | static int __run_perf_stat(int argc, const char **argv) |
534 | { | 534 | { |
535 | int interval = stat_config.interval; | 535 | int interval = stat_config.interval; |
536 | char msg[512]; | 536 | char msg[BUFSIZ]; |
537 | unsigned long long t0, t1; | 537 | unsigned long long t0, t1; |
538 | struct perf_evsel *counter; | 538 | struct perf_evsel *counter; |
539 | struct timespec ts; | 539 | struct timespec ts; |
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index d90927f31ff6..5a7fd7af3a6d 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
@@ -859,7 +859,7 @@ static void perf_top__mmap_read(struct perf_top *top) | |||
859 | 859 | ||
860 | static int perf_top__start_counters(struct perf_top *top) | 860 | static int perf_top__start_counters(struct perf_top *top) |
861 | { | 861 | { |
862 | char msg[512]; | 862 | char msg[BUFSIZ]; |
863 | struct perf_evsel *counter; | 863 | struct perf_evsel *counter; |
864 | struct perf_evlist *evlist = top->evlist; | 864 | struct perf_evlist *evlist = top->evlist; |
865 | struct record_opts *opts = &top->record_opts; | 865 | struct record_opts *opts = &top->record_opts; |
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 04e536ae4d88..cd2fb42e5dd4 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
@@ -2469,7 +2469,9 @@ int perf_evsel__open_strerror(struct perf_evsel *evsel, struct target *target, | |||
2469 | " -1: Allow use of (almost) all events by all users\n" | 2469 | " -1: Allow use of (almost) all events by all users\n" |
2470 | ">= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK\n" | 2470 | ">= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK\n" |
2471 | ">= 1: Disallow CPU event access by users without CAP_SYS_ADMIN\n" | 2471 | ">= 1: Disallow CPU event access by users without CAP_SYS_ADMIN\n" |
2472 | ">= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN", | 2472 | ">= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN\n\n" |
2473 | "To make this setting permanent, edit /etc/sysctl.conf too, e.g.:\n\n" | ||
2474 | " kernel.perf_event_paranoid = -1\n" , | ||
2473 | target->system_wide ? "system-wide " : "", | 2475 | target->system_wide ? "system-wide " : "", |
2474 | perf_event_paranoid()); | 2476 | perf_event_paranoid()); |
2475 | case ENOENT: | 2477 | case ENOENT: |