forked from luck/tmp_suning_uos_patched
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>
This commit is contained in:
parent
9890948d85
commit
db620b1c2f
@ -560,17 +560,8 @@ static int __cmd_record(int argc, const char **argv)
|
|||||||
return err;
|
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);
|
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);
|
atexit(atexit_header);
|
||||||
|
|
||||||
|
@ -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)
|
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)
|
int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events)
|
||||||
|
Loading…
Reference in New Issue
Block a user