mirror of https://gitee.com/openkylin/linux.git
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;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue