aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Zanussi <tzanussi@gmail.com>2010-05-04 22:20:16 -0500
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-05 11:12:53 -0300
commitdb620b1c2fb172346dc54eb62bba9b4a117d173b (patch)
tree6580f89ea495b4e623c4a23aed8754beb428a389
parent9890948d857c2120c234b0ca91a80416e8f747fb (diff)
perf/record: simplify TRACE_INFO tracepoint check
Fix a couple of inefficiencies and redundancies related to have_tracepoints() and its use when checking whether to write TRACE_INFO. First, there's no need to use get_tracepoints_path() in have_tracepoints() - we really just want the part that checks whether any attributes correspondo to tracepoints. Second, we really don't care about raw_samples per se - tracepoints are always raw_samples. In any case, the have_tracepoints() check should be sufficient to decide whether or not to write TRACE_INFO. Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu>, Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Acked-by: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <1273030770.6383.6.camel@tropicana> Signed-off-by: Tom Zanussi <tzanussi@gmail.com> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
-rw-r--r--tools/perf/builtin-record.c11
-rw-r--r--tools/perf/util/trace-event-info.c8
2 files changed, 8 insertions, 11 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 0ff67d1c475..d3981ac50e1 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -560,17 +560,8 @@ static int __cmd_record(int argc, const char **argv)
return err;
}
- if (raw_samples && have_tracepoints(attrs, nr_counters)) {
+ if (have_tracepoints(attrs, nr_counters))
perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
- } else {
- for (i = 0; i < nr_counters; i++) {
- if (attrs[i].sample_type & PERF_SAMPLE_RAW &&
- attrs[i].type == PERF_TYPE_TRACEPOINT) {
- perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
- break;
- }
- }
- }
atexit(atexit_header);
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c
index 0a1fb9d4f3b..b1572601286 100644
--- a/tools/perf/util/trace-event-info.c
+++ b/tools/perf/util/trace-event-info.c
@@ -489,7 +489,13 @@ get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events)
bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events)
{
- return get_tracepoints_path(pattrs, nb_events) ? true : false;
+ int i;
+
+ for (i = 0; i < nb_events; i++)
+ if (pattrs[i].type == PERF_TYPE_TRACEPOINT)
+ return true;
+
+ return false;
}
int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events)