Merge tag 'drm-misc-next-fixes-2021-09-09' of git://anongit.freedesktop.org/drm/drm...
[linux-2.6-microblaze.git] / tools / perf / builtin-stat.c
index f9f74a5..6343759 100644 (file)
@@ -154,6 +154,8 @@ static const char *topdown_metric_L2_attrs[] = {
        NULL,
 };
 
+#define TOPDOWN_MAX_LEVEL                      2
+
 static const char *smi_cost_attrs = {
        "{"
        "msr/aperf/,"
@@ -248,7 +250,7 @@ static void evlist__check_cpu_maps(struct evlist *evlist)
                evlist__warn_hybrid_group(evlist);
 
        evlist__for_each_entry(evlist, evsel) {
-               leader = evsel->leader;
+               leader = evsel__leader(evsel);
 
                /* Check that leader matches cpus with each member. */
                if (leader == evsel)
@@ -269,10 +271,10 @@ static void evlist__check_cpu_maps(struct evlist *evlist)
                }
 
                for_each_group_evsel(pos, leader) {
-                       pos->leader = pos;
+                       evsel__set_leader(pos, pos);
                        pos->core.nr_members = 0;
                }
-               evsel->leader->core.nr_members = 0;
+               evsel->core.leader->nr_members = 0;
        }
 }
 
@@ -745,8 +747,8 @@ static enum counter_recovery stat_handle_error(struct evsel *counter)
                 */
                counter->errored = true;
 
-               if ((counter->leader != counter) ||
-                   !(counter->leader->core.nr_members > 1))
+               if ((evsel__leader(counter) != counter) ||
+                   !(counter->core.leader->nr_members > 1))
                        return COUNTER_SKIP;
        } else if (evsel__fallback(counter, errno, msg, sizeof(msg))) {
                if (verbose > 0)
@@ -839,7 +841,7 @@ try_again:
                                 * Don't close here because we're in the wrong affinity.
                                 */
                                if ((errno == EINVAL || errno == EBADF) &&
-                                   counter->leader != counter &&
+                                   evsel__leader(counter) != counter &&
                                    counter->weak_group) {
                                        evlist__reset_weak_group(evsel_list, counter, false);
                                        assert(counter->reset_group);
@@ -1931,6 +1933,7 @@ setup_metrics:
                if (evlist__add_default_attrs(evsel_list, default_attrs1) < 0)
                        return -1;
 
+               stat_config.topdown_level = TOPDOWN_MAX_LEVEL;
                if (arch_evlist__add_default_attrs(evsel_list) < 0)
                        return -1;
        }
@@ -2442,9 +2445,6 @@ int cmd_stat(int argc, const char **argv)
 
        evlist__check_cpu_maps(evsel_list);
 
-       if (perf_pmu__has_hybrid())
-               stat_config.no_merge = true;
-
        /*
         * Initialize thread_map with comm names,
         * so we could print it out on output.