瀏覽代碼

perf session: Change perf_session__has_traces to actually check for tracepoints

Any event can have RAW data attribute set. The intent of the function is
to determine if the session has tracepoints, so check for the type of
each event explicitly.

Signed-off-by: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1375930261-77273-17-git-send-email-dsahern@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
David Ahern 12 年之前
父節點
當前提交
93ea01c29d
共有 1 個文件被更改,包括 7 次插入4 次删除
  1. 7 4
      tools/perf/util/session.c

+ 7 - 4
tools/perf/util/session.c

@@ -1401,12 +1401,15 @@ int perf_session__process_events(struct perf_session *self,
 
 
 bool perf_session__has_traces(struct perf_session *session, const char *msg)
 bool perf_session__has_traces(struct perf_session *session, const char *msg)
 {
 {
-	if (!(perf_evlist__sample_type(session->evlist) & PERF_SAMPLE_RAW)) {
-		pr_err("No trace sample to read. Did you call 'perf %s'?\n", msg);
-		return false;
+	struct perf_evsel *evsel;
+
+	list_for_each_entry(evsel, &session->evlist->entries, node) {
+		if (evsel->attr.type == PERF_TYPE_TRACEPOINT)
+			return true;
 	}
 	}
 
 
-	return true;
+	pr_err("No trace sample to read. Did you call 'perf %s'?\n", msg);
+	return false;
 }
 }
 
 
 int maps__set_kallsyms_ref_reloc_sym(struct map **maps,
 int maps__set_kallsyms_ref_reloc_sym(struct map **maps,