perf record: Refactor feature handling into a separate function
Code move only. No logic changes. Signed-off-by: David Ahern <dsahern@gmail.com> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Namhyung Kim <namhyung.kim@lge.com> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Stephane Eranian <eranian@google.com> Link: http://lkml.kernel.org/r/1383763297-27066-2-git-send-email-dsahern@gmail.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
77170988ff
commit
57706abc19
@ -342,9 +342,28 @@ out:
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void perf_record__init_features(struct perf_record *rec)
|
||||||
|
{
|
||||||
|
struct perf_evlist *evsel_list = rec->evlist;
|
||||||
|
struct perf_session *session = rec->session;
|
||||||
|
int feat;
|
||||||
|
|
||||||
|
for (feat = HEADER_FIRST_FEATURE; feat < HEADER_LAST_FEATURE; feat++)
|
||||||
|
perf_header__set_feat(&session->header, feat);
|
||||||
|
|
||||||
|
if (rec->no_buildid)
|
||||||
|
perf_header__clear_feat(&session->header, HEADER_BUILD_ID);
|
||||||
|
|
||||||
|
if (!have_tracepoints(&evsel_list->entries))
|
||||||
|
perf_header__clear_feat(&session->header, HEADER_TRACING_DATA);
|
||||||
|
|
||||||
|
if (!rec->opts.branch_stack)
|
||||||
|
perf_header__clear_feat(&session->header, HEADER_BRANCH_STACK);
|
||||||
|
}
|
||||||
|
|
||||||
static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
||||||
{
|
{
|
||||||
int err, feat;
|
int err;
|
||||||
unsigned long waking = 0;
|
unsigned long waking = 0;
|
||||||
const bool forks = argc > 0;
|
const bool forks = argc > 0;
|
||||||
struct machine *machine;
|
struct machine *machine;
|
||||||
@ -371,17 +390,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)
|
|||||||
|
|
||||||
rec->session = session;
|
rec->session = session;
|
||||||
|
|
||||||
for (feat = HEADER_FIRST_FEATURE; feat < HEADER_LAST_FEATURE; feat++)
|
perf_record__init_features(rec);
|
||||||
perf_header__set_feat(&session->header, feat);
|
|
||||||
|
|
||||||
if (rec->no_buildid)
|
|
||||||
perf_header__clear_feat(&session->header, HEADER_BUILD_ID);
|
|
||||||
|
|
||||||
if (!have_tracepoints(&evsel_list->entries))
|
|
||||||
perf_header__clear_feat(&session->header, HEADER_TRACING_DATA);
|
|
||||||
|
|
||||||
if (!rec->opts.branch_stack)
|
|
||||||
perf_header__clear_feat(&session->header, HEADER_BRANCH_STACK);
|
|
||||||
|
|
||||||
if (forks) {
|
if (forks) {
|
||||||
err = perf_evlist__prepare_workload(evsel_list, &opts->target,
|
err = perf_evlist__prepare_workload(evsel_list, &opts->target,
|
||||||
|
Loading…
Reference in New Issue
Block a user