perf c2c: Use 'peer' as default display for Arm64
Since Arm64 arch doesn't support HITMs flags, this patch changes to use 'peer' as default display if user doesn't specify any type; for other arches, it still uses 'tot' as default display type if user doesn't specify it. This patch changes to call perf_session__new() in an earlier place, so session environment can be initialized ahead and arch info can be used for setting display type. Suggested-by: Ali Saidi <alisaidi@amazon.com> Reviewed-by: Ali Saidi <alisaidi@amazon.com> Signed-off-by: Leo Yan <leo.yan@linaro.org> Tested-by: Ali Saidi <alisaidi@amazon.com> Acked-by: Ian Rogers <irogers@google.com> Cc: Adrian Hunter <adrian.hunter@intel.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Anshuman Khandual <anshuman.khandual@arm.com> Cc: German Gomez <german.gomez@arm.com> Cc: Gustavo A. R. Silva <gustavoars@kernel.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: James Clark <james.clark@arm.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.garry@huawei.com> Cc: Kajol Jain <kjain@linux.ibm.com> Cc: Like Xu <likexu@tencent.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mike Leach <mike.leach@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Timothy Hayes <timothy.hayes@arm.com> Cc: Will Deacon <will@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Link: https://lore.kernel.org/r/20220811062451.435810-15-leo.yan@linaro.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
f37c5d914e
commit
ead42a0f9b
|
@ -2878,7 +2878,7 @@ static int setup_callchain(struct evlist *evlist)
|
|||
|
||||
static int setup_display(const char *str)
|
||||
{
|
||||
const char *display = str ?: "tot";
|
||||
const char *display = str;
|
||||
|
||||
if (!strcmp(display, "tot"))
|
||||
c2c.display = DISPLAY_TOT_HITM;
|
||||
|
@ -3068,22 +3068,6 @@ static int perf_c2c__report(int argc, const char **argv)
|
|||
data.path = input_name;
|
||||
data.force = symbol_conf.force;
|
||||
|
||||
err = setup_display(display);
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = setup_coalesce(coalesce, no_source);
|
||||
if (err) {
|
||||
pr_debug("Failed to initialize hists\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
err = c2c_hists__init(&c2c.hists, "dcacheline", 2);
|
||||
if (err) {
|
||||
pr_debug("Failed to initialize hists\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
session = perf_session__new(&data, &c2c.tool);
|
||||
if (IS_ERR(session)) {
|
||||
err = PTR_ERR(session);
|
||||
|
@ -3091,12 +3075,40 @@ static int perf_c2c__report(int argc, const char **argv)
|
|||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* Use the 'tot' as default display type if user doesn't specify it;
|
||||
* since Arm64 platform doesn't support HITMs flag, use 'peer' as the
|
||||
* default display type.
|
||||
*/
|
||||
if (!display) {
|
||||
if (!strcmp(perf_env__arch(&session->header.env), "arm64"))
|
||||
display = "peer";
|
||||
else
|
||||
display = "tot";
|
||||
}
|
||||
|
||||
err = setup_display(display);
|
||||
if (err)
|
||||
goto out_session;
|
||||
|
||||
err = setup_coalesce(coalesce, no_source);
|
||||
if (err) {
|
||||
pr_debug("Failed to initialize hists\n");
|
||||
goto out_session;
|
||||
}
|
||||
|
||||
err = c2c_hists__init(&c2c.hists, "dcacheline", 2);
|
||||
if (err) {
|
||||
pr_debug("Failed to initialize hists\n");
|
||||
goto out_session;
|
||||
}
|
||||
|
||||
session->itrace_synth_opts = &itrace_synth_opts;
|
||||
|
||||
err = setup_nodes(session);
|
||||
if (err) {
|
||||
pr_err("Failed setup nodes\n");
|
||||
goto out;
|
||||
goto out_session;
|
||||
}
|
||||
|
||||
err = mem2node__init(&c2c.mem2node, &session->header.env);
|
||||
|
|
Loading…
Reference in New Issue