Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf evsel: Remove use_uncore_alias

This flag used to be used when regrouping uncore events in particular
due to wildcard matches. This is now handled by sorting evlist and so
the flag is redundant.

Signed-off-by: Ian Rogers <irogers@google.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Florian Fischer <florian.fischer@muhq.space>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Kajol Jain <kjain@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Kim Phillips <kim.phillips@amd.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Steinar H. Gunderson <sesse@google.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Suzuki Poulouse <suzuki.poulose@arm.com>
Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
Link: https://lore.kernel.org/r/20230312021543.3060328-2-irogers@google.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Ian Rogers and committed by
Arnaldo Carvalho de Melo
e733f87e 347c2f0a

+11 -17
-1
tools/perf/util/evsel.c
··· 458 458 evsel->per_pkg = orig->per_pkg; 459 459 evsel->percore = orig->percore; 460 460 evsel->precise_max = orig->precise_max; 461 - evsel->use_uncore_alias = orig->use_uncore_alias; 462 461 evsel->is_libpfm_event = orig->is_libpfm_event; 463 462 464 463 evsel->exclude_GH = orig->exclude_GH;
-1
tools/perf/util/evsel.h
··· 89 89 bool per_pkg; 90 90 bool percore; 91 91 bool precise_max; 92 - bool use_uncore_alias; 93 92 bool is_libpfm_event; 94 93 bool auto_merge_stats; 95 94 bool collect_stat;
+3 -9
tools/perf/util/parse-events.c
··· 1445 1445 int parse_events_add_pmu(struct parse_events_state *parse_state, 1446 1446 struct list_head *list, char *name, 1447 1447 struct list_head *head_config, 1448 - bool auto_merge_stats, 1449 - bool use_alias) 1448 + bool auto_merge_stats) 1450 1449 { 1451 1450 struct perf_event_attr attr; 1452 1451 struct perf_pmu_info info; 1453 1452 struct perf_pmu *pmu; 1454 1453 struct evsel *evsel; 1455 1454 struct parse_events_error *err = parse_state->error; 1456 - bool use_uncore_alias; 1457 1455 LIST_HEAD(config_terms); 1458 1456 1459 1457 pmu = parse_state->fake_pmu ?: perf_pmu__find(name); ··· 1486 1488 memset(&attr, 0, sizeof(attr)); 1487 1489 } 1488 1490 1489 - use_uncore_alias = (pmu->is_uncore && use_alias); 1490 - 1491 1491 if (!head_config) { 1492 1492 attr.type = pmu->type; 1493 1493 evsel = __add_event(list, &parse_state->idx, &attr, ··· 1495 1499 /*cpu_list=*/NULL); 1496 1500 if (evsel) { 1497 1501 evsel->pmu_name = name ? strdup(name) : NULL; 1498 - evsel->use_uncore_alias = use_uncore_alias; 1499 1502 return 0; 1500 1503 } else { 1501 1504 return -ENOMEM; ··· 1555 1560 evsel->use_config_name = true; 1556 1561 1557 1562 evsel->pmu_name = name ? strdup(name) : NULL; 1558 - evsel->use_uncore_alias = use_uncore_alias; 1559 1563 evsel->percore = config_term_percore(&evsel->config_terms); 1560 1564 1561 1565 if (parse_state->fake_pmu) ··· 1616 1622 parse_events_copy_term_list(head, &orig_head); 1617 1623 if (!parse_events_add_pmu(parse_state, list, 1618 1624 pmu->name, orig_head, 1619 - true, true)) { 1625 + /*auto_merge_stats=*/true)) { 1620 1626 pr_debug("%s -> %s/%s/\n", str, 1621 1627 pmu->name, alias->str); 1622 1628 ok++; ··· 1628 1634 1629 1635 if (parse_state->fake_pmu) { 1630 1636 if (!parse_events_add_pmu(parse_state, list, str, head, 1631 - true, true)) { 1637 + /*auto_merge_stats=*/true)) { 1632 1638 pr_debug("%s -> %s/%s/\n", str, "fake_pmu", str); 1633 1639 ok++; 1634 1640 }
+1 -2
tools/perf/util/parse-events.h
··· 183 183 int parse_events_add_pmu(struct parse_events_state *parse_state, 184 184 struct list_head *list, char *name, 185 185 struct list_head *head_config, 186 - bool auto_merge_stats, 187 - bool use_alias); 186 + bool auto_merge_stats); 188 187 189 188 struct evsel *parse_events__add_event(int idx, struct perf_event_attr *attr, 190 189 const char *name, const char *metric_id,
+7 -4
tools/perf/util/parse-events.y
··· 313 313 list = alloc_list(); 314 314 if (!list) 315 315 CLEANUP_YYABORT; 316 - if (parse_events_add_pmu(_parse_state, list, $1, $2, false, false)) { 316 + if (parse_events_add_pmu(_parse_state, list, $1, $2, /*auto_merge_stats=*/false)) { 317 317 struct perf_pmu *pmu = NULL; 318 318 int ok = 0; 319 319 ··· 330 330 !perf_pmu__match(pattern, pmu->alias_name, $1)) { 331 331 if (parse_events_copy_term_list(orig_terms, &terms)) 332 332 CLEANUP_YYABORT; 333 - if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms, true, false)) 333 + if (!parse_events_add_pmu(_parse_state, list, pmu->name, terms, 334 + /*auto_merge_stats=*/true)) { 334 335 ok++; 336 + } 335 337 parse_events_terms__delete(terms); 336 338 } 337 339 } ··· 409 407 if (!list) 410 408 YYABORT; 411 409 412 - err = parse_events_add_pmu(_parse_state, list, $1, NULL, false, false); 410 + err = parse_events_add_pmu(_parse_state, list, $1, /*head_config=*/NULL, 411 + /*auto_merge_stats=*/false); 413 412 free($1); 414 413 if (err < 0) { 415 414 free(list); ··· 428 425 if (!list) 429 426 YYABORT; 430 427 431 - err = parse_events_add_pmu(_parse_state, list, $1, $2, false, false); 428 + err = parse_events_add_pmu(_parse_state, list, $1, $2, /*auto_merge_stats=*/false); 432 429 free($1); 433 430 parse_events_terms__delete($2); 434 431 if (err < 0) {