perf evlist: Always do automatic allocation of pollfd and mmap structures
At first tools were required to do that, but while writing the python bindings to simplify the API I made them auto-allocate when needed. This just makes record, stat and top use that auto allocation, simplifying them a bit. Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/n/tip-iokhcvkzzijr3keioubx8hlq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -1034,9 +1034,7 @@ parse_callchain_opt(const struct option *opt, const char *arg, int unset)
|
||||
symbol_conf.use_callchain = false;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
else
|
||||
} else
|
||||
return -1;
|
||||
|
||||
/* get the min percentage */
|
||||
@@ -1225,22 +1223,13 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
|
||||
}
|
||||
|
||||
list_for_each_entry(pos, &top.evlist->entries, node) {
|
||||
if (perf_evsel__alloc_fd(pos, top.evlist->cpus->nr,
|
||||
top.evlist->threads->nr) < 0)
|
||||
goto out_free_fd;
|
||||
/*
|
||||
* Fill in the ones not specifically initialized via -c:
|
||||
*/
|
||||
if (pos->attr.sample_period)
|
||||
continue;
|
||||
|
||||
pos->attr.sample_period = top.default_interval;
|
||||
if (!pos->attr.sample_period)
|
||||
pos->attr.sample_period = top.default_interval;
|
||||
}
|
||||
|
||||
if (perf_evlist__alloc_pollfd(top.evlist) < 0 ||
|
||||
perf_evlist__alloc_mmap(top.evlist) < 0)
|
||||
goto out_free_fd;
|
||||
|
||||
top.sym_evsel = list_entry(top.evlist->entries.next, struct perf_evsel, node);
|
||||
|
||||
symbol_conf.priv_size = sizeof(struct annotation);
|
||||
@@ -1270,7 +1259,7 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
|
||||
}
|
||||
|
||||
status = __cmd_top(&top);
|
||||
out_free_fd:
|
||||
|
||||
perf_evlist__delete(top.evlist);
|
||||
|
||||
return status;
|
||||
|
Reference in New Issue
Block a user