Merge tag 'gvt-fixes-2021-08-10' of https://github.com/intel/gvt-linux into drm-intel...
[linux-2.6-microblaze.git] / tools / perf / util / parse-events.c
index 4dad142..e5eae23 100644 (file)
@@ -150,6 +150,10 @@ struct event_symbol event_symbols_sw[PERF_COUNT_SW_MAX] = {
                .symbol = "bpf-output",
                .alias  = "",
        },
+       [PERF_COUNT_SW_CGROUP_SWITCHES] = {
+               .symbol = "cgroup-switches",
+               .alias  = "",
+       },
 };
 
 #define __PERF_EVENT_FIELD(config, name) \
@@ -1736,7 +1740,7 @@ parse_events__set_leader_for_uncore_aliase(char *name, struct list_head *list,
 
        leader = list_first_entry(list, struct evsel, core.node);
        evsel = list_last_entry(list, struct evsel, core.node);
-       total_members = evsel->idx - leader->idx + 1;
+       total_members = evsel->core.idx - leader->core.idx + 1;
 
        leaders = calloc(total_members, sizeof(uintptr_t));
        if (WARN_ON(!leaders))
@@ -1796,7 +1800,7 @@ parse_events__set_leader_for_uncore_aliase(char *name, struct list_head *list,
        __evlist__for_each_entry(list, evsel) {
                if (i >= nr_pmu)
                        i = 0;
-               evsel->leader = (struct evsel *) leaders[i++];
+               evsel__set_leader(evsel, (struct evsel *) leaders[i++]);
        }
 
        /* The number of members and group name are same for each group */
@@ -1829,7 +1833,7 @@ void parse_events__set_leader(char *name, struct list_head *list,
        if (parse_events__set_leader_for_uncore_aliase(name, list, parse_state))
                return;
 
-       __evlist__set_leader(list);
+       __perf_evlist__set_leader(list);
        leader = list_entry(list->next, struct evsel, core.node);
        leader->group_name = name ? strdup(name) : NULL;
 }
@@ -2281,7 +2285,7 @@ int __parse_events(struct evlist *evlist, const char *str,
        if (!ret) {
                struct evsel *last;
 
-               evlist->nr_groups += parse_state.nr_groups;
+               evlist->core.nr_groups += parse_state.nr_groups;
                last = evlist__last(evlist);
                last->cmdline_group_boundary = true;
 
@@ -2928,9 +2932,14 @@ restart:
        }
 
        for (i = 0; i < max; i++, syms++) {
+               /*
+                * New attr.config still not supported here, the latest
+                * example was PERF_COUNT_SW_CGROUP_SWITCHES
+                */
+               if (syms->symbol == NULL)
+                       continue;
 
-               if (event_glob != NULL && syms->symbol != NULL &&
-                   !(strglobmatch(syms->symbol, event_glob) ||
+               if (event_glob != NULL && !(strglobmatch(syms->symbol, event_glob) ||
                      (syms->alias && strglobmatch(syms->alias, event_glob))))
                        continue;