aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorTom Zanussi <tzanussi@gmail.com>2010-05-04 23:20:16 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2010-05-05 10:12:53 -0400
commitdb620b1c2fb172346dc54eb62bba9b4a117d173b (patch)
tree6580f89ea495b4e623c4a23aed8754beb428a389 /tools
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>
Diffstat (limited to 'tools')
-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 0ff67d1c4752..d3981ac50e1d 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)
560 return err; 560 return err;
561 } 561 }
562 562
563 if (raw_samples && have_tracepoints(attrs, nr_counters)) { 563 if (have_tracepoints(attrs, nr_counters))
564 perf_header__set_feat(&session->header, HEADER_TRACE_INFO); 564 perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
565 } else {
566 for (i = 0; i < nr_counters; i++) {
567 if (attrs[i].sample_type & PERF_SAMPLE_RAW &&
568 attrs[i].type == PERF_TYPE_TRACEPOINT) {
569 perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
570 break;
571 }
572 }
573 }
574 565
575 atexit(atexit_header); 566 atexit(atexit_header);
576 567
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c
index 0a1fb9d4f3b6..b1572601286c 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)
489 489
490bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events) 490bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events)
491{ 491{
492 return get_tracepoints_path(pattrs, nb_events) ? true : false; 492 int i;
493
494 for (i = 0; i < nb_events; i++)
495 if (pattrs[i].type == PERF_TYPE_TRACEPOINT)
496 return true;
497
498 return false;
493} 499}
494 500
495int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events) 501int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events)