Skip to content

Commit

Permalink
perf record: Refactor feature handling into a separate function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Ahern authored and Arnaldo Carvalho de Melo committed Nov 7, 2013
1 parent 7717098 commit 57706ab
Showing 1 changed file with 21 additions and 12 deletions.
33 changes: 21 additions & 12 deletions tools/perf/builtin-record.c
Original file line number Diff line number Diff line change
Expand Up @@ -342,9 +342,28 @@ static int perf_record__mmap_read_all(struct perf_record *rec)
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)
{
int err, feat;
int err;
unsigned long waking = 0;
const bool forks = argc > 0;
struct machine *machine;
Expand All @@ -371,17 +390,7 @@ static int __cmd_record(struct perf_record *rec, int argc, const char **argv)

rec->session = session;

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);
perf_record__init_features(rec);

if (forks) {
err = perf_evlist__prepare_workload(evsel_list, &opts->target,
Expand Down

0 comments on commit 57706ab

Please sign in to comment.