perf c2c: Use 'peer' as default display for Arm64
[linux-2.6-microblaze.git] / tools / perf / builtin-c2c.c
index f7a961e..653e13b 100644 (file)
@@ -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,27 +3068,39 @@ static int perf_c2c__report(int argc, const char **argv)
        data.path  = input_name;
        data.force = symbol_conf.force;
 
+       session = perf_session__new(&data, &c2c.tool);
+       if (IS_ERR(session)) {
+               err = PTR_ERR(session);
+               pr_debug("Error creating perf session\n");
+               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;
+               goto out_session;
 
        err = setup_coalesce(coalesce, no_source);
        if (err) {
                pr_debug("Failed to initialize hists\n");
-               goto out;
+               goto out_session;
        }
 
        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);
-               pr_debug("Error creating perf session\n");
-               goto out;
+               goto out_session;
        }
 
        session->itrace_synth_opts = &itrace_synth_opts;
@@ -3096,7 +3108,7 @@ static int perf_c2c__report(int argc, const char **argv)
        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);