aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/parse-events.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-24 18:56:45 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-02-24 18:56:45 -0500
commit8301bb240d0f1b1521b83342f3af8edab7131361 (patch)
treeb866e77863d534d2447f4aaeeba77ea6b307e2bd /tools/perf/util/parse-events.c
parent12f287878afc39acea00b3e62baf72c79878c427 (diff)
parentcfbf8d4857c26a8a307fb7cd258074c9dcd8c691 (diff)
Merge 3.14-rc4 into tty-next
We want the tty revert here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/perf/util/parse-events.c')
-rw-r--r--tools/perf/util/parse-events.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index d248fca6d7ed..1e15df10a88c 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1091,12 +1091,12 @@ int is_valid_tracepoint(const char *event_string)
1091static bool is_event_supported(u8 type, unsigned config) 1091static bool is_event_supported(u8 type, unsigned config)
1092{ 1092{
1093 bool ret = true; 1093 bool ret = true;
1094 int open_return;
1094 struct perf_evsel *evsel; 1095 struct perf_evsel *evsel;
1095 struct perf_event_attr attr = { 1096 struct perf_event_attr attr = {
1096 .type = type, 1097 .type = type,
1097 .config = config, 1098 .config = config,
1098 .disabled = 1, 1099 .disabled = 1,
1099 .exclude_kernel = 1,
1100 }; 1100 };
1101 struct { 1101 struct {
1102 struct thread_map map; 1102 struct thread_map map;
@@ -1108,7 +1108,20 @@ static bool is_event_supported(u8 type, unsigned config)
1108 1108
1109 evsel = perf_evsel__new(&attr); 1109 evsel = perf_evsel__new(&attr);
1110 if (evsel) { 1110 if (evsel) {
1111 ret = perf_evsel__open(evsel, NULL, &tmap.map) >= 0; 1111 open_return = perf_evsel__open(evsel, NULL, &tmap.map);
1112 ret = open_return >= 0;
1113
1114 if (open_return == -EACCES) {
1115 /*
1116 * This happens if the paranoid value
1117 * /proc/sys/kernel/perf_event_paranoid is set to 2
1118 * Re-run with exclude_kernel set; we don't do that
1119 * by default as some ARM machines do not support it.
1120 *
1121 */
1122 evsel->attr.exclude_kernel = 1;
1123 ret = perf_evsel__open(evsel, NULL, &tmap.map) >= 0;
1124 }
1112 perf_evsel__delete(evsel); 1125 perf_evsel__delete(evsel);
1113 } 1126 }
1114 1127