Lines Matching refs:pmu

144 				struct perf_pmu *pmu = perf_pmus__find(term->val.str);  in get_config_cpu()  local
146 if (pmu && perf_cpu_map__is_empty(pmu->cpus)) in get_config_cpu()
147 term_cpus = pmu->is_core ? cpu_map__online() : NULL; in get_config_cpu()
148 else if (pmu) in get_config_cpu()
149 term_cpus = perf_cpu_map__get(pmu->cpus); in get_config_cpu()
172 static void fix_raw(struct parse_events_terms *config_terms, struct perf_pmu *pmu) in fix_raw() argument
182 if (perf_pmu__have_event(pmu, term->val.str)) { in fix_raw()
209 const char *name, const char *metric_id, struct perf_pmu *pmu, in __add_event() argument
228 if (perf_pmu__name_no_suffix_match(pos->pmu, pmu->name)) { in __add_event()
232 if (pos->pmu->is_core && (!pmu || pmu->is_core)) { in __add_event()
239 if (pmu) { in __add_event()
240 perf_pmu__warn_invalid_formats(pmu); in __add_event()
242 perf_pmu__warn_invalid_config(pmu, attr->config, name, in __add_event()
244 perf_pmu__warn_invalid_config(pmu, attr->config1, name, in __add_event()
246 perf_pmu__warn_invalid_config(pmu, attr->config2, name, in __add_event()
248 perf_pmu__warn_invalid_config(pmu, attr->config3, name, in __add_event()
256 if (!pmu) in __add_event()
257 pmu = perf_pmus__find_by_attr(attr); in __add_event()
259 if (pmu) { in __add_event()
260 is_pmu_core = pmu->is_core; in __add_event()
261 pmu_cpus = perf_cpu_map__get(pmu->cpus); in __add_event()
297 evsel->core.requires_cpu = pmu ? pmu->is_uncore : false; in __add_event()
299 evsel->pmu = pmu; in __add_event()
324 struct perf_pmu *pmu) in parse_events__add_event() argument
327 metric_id, pmu, /*config_terms=*/NULL, in parse_events__add_event()
453 const struct perf_pmu *pmu) in parse_events__filter_pmu() argument
458 return strcmp(parse_state->pmu_filter, pmu->name) != 0; in parse_events__filter_pmu()
462 struct list_head *list, struct perf_pmu *pmu,
470 struct perf_pmu *pmu = NULL; in parse_events_add_cache() local
478 while ((pmu = perf_pmus__scan_for_event(pmu, name)) != NULL) { in parse_events_add_cache()
482 if (parse_events__filter_pmu(parse_state, pmu)) in parse_events_add_cache()
485 if (perf_pmu__have_event(pmu, name)) { in parse_events_add_cache()
490 ret = parse_events_add_pmu(parse_state, list, pmu, in parse_events_add_cache()
502 if (!pmu->is_core) { in parse_events_add_cache()
510 ret = parse_events__decode_legacy_cache(name, pmu->type, &attr.config); in parse_events_add_cache()
529 metric_id, pmu, &config_terms, first_wildcard_match, in parse_events_add_cache()
1071 struct perf_pmu *pmu = perf_pmus__find_by_type(attr->type); in config_term_pmu() local
1073 if (!pmu) { in config_term_pmu()
1086 if (perf_pmu__supports_legacy_cache(pmu) && in config_term_pmu()
1087 !perf_pmu__have_event(pmu, term->config)) { in config_term_pmu()
1089 return parse_events__decode_legacy_cache(term->config, pmu->type, in config_term_pmu()
1097 struct perf_pmu *pmu = perf_pmus__find_by_type(attr->type); in config_term_pmu() local
1099 if (!pmu) { in config_term_pmu()
1111 if (perf_pmu__have_event(pmu, term->config)) { in config_term_pmu()
1119 attr->config |= (__u64)pmu->type << PERF_PMU_TYPE_SHIFT; in config_term_pmu()
1314 static int get_config_chgs(struct perf_pmu *pmu, struct parse_events_terms *head_config, in get_config_chgs() argument
1324 type = perf_pmu__format_type(pmu, term->config); in get_config_chgs()
1327 bits |= perf_pmu__format_bits(pmu, term->config); in get_config_chgs()
1392 struct perf_pmu *pmu, u32 type, u32 extended_type, in __parse_events_add_numeric() argument
1423 metric_id, pmu, &config_terms, first_wildcard_match, in __parse_events_add_numeric()
1436 struct perf_pmu *pmu = NULL; in parse_events_add_numeric() local
1442 while ((pmu = perf_pmus__scan_core(pmu)) != NULL) { in parse_events_add_numeric()
1446 if (parse_events__filter_pmu(parse_state, pmu)) in parse_events_add_numeric()
1449 ret = __parse_events_add_numeric(parse_state, list, pmu, in parse_events_add_numeric()
1450 type, pmu->type, in parse_events_add_numeric()
1480 struct list_head *list, struct perf_pmu *pmu, in parse_events_add_pmu() argument
1497 if (pmu->selectable && const_parsed_terms && in parse_events_add_pmu()
1499 strbuf_addf(&sb, "%s//", pmu->name); in parse_events_add_pmu()
1501 strbuf_addf(&sb, "%s/", pmu->name); in parse_events_add_pmu()
1510 if (pmu->perf_event_attr_init_default) in parse_events_add_pmu()
1511 pmu->perf_event_attr_init_default(pmu, &attr); in parse_events_add_pmu()
1513 attr.type = pmu->type; in parse_events_add_pmu()
1518 /*metric_id=*/NULL, pmu, in parse_events_add_pmu()
1531 fix_raw(&parsed_terms, pmu); in parse_events_add_pmu()
1540 if (perf_pmu__check_alias(pmu, &parsed_terms, in parse_events_add_pmu()
1552 fprintf(stderr, "..after resolving event: %s/%s/\n", pmu->name, sb.buf); in parse_events_add_pmu()
1572 if (pmu->perf_event_attr_init_default && in parse_events_add_pmu()
1573 get_config_chgs(pmu, &parsed_terms, &config_terms)) { in parse_events_add_pmu()
1579 if (perf_pmu__config(pmu, &attr, &parsed_terms, /*apply_hardcoded=*/false, in parse_events_add_pmu()
1589 get_config_metric_id(&parsed_terms), pmu, in parse_events_add_pmu()
1622 struct perf_pmu *pmu = NULL; in parse_events_multi_pmu_add() local
1659 while ((pmu = perf_pmus__scan_for_event(pmu, event_name)) != NULL) { in parse_events_multi_pmu_add()
1661 if (parse_events__filter_pmu(parse_state, pmu)) in parse_events_multi_pmu_add()
1664 if (!perf_pmu__have_event(pmu, event_name)) in parse_events_multi_pmu_add()
1667 if (!parse_events_add_pmu(parse_state, list, pmu, in parse_events_multi_pmu_add()
1673 pr_debug("%s -> %s/%s/\n", event_name, pmu->name, sb.buf); in parse_events_multi_pmu_add()
1711 struct perf_pmu *pmu; in parse_events_multi_pmu_add_or_add_pmu() local
1723 pmu = perf_pmus__find(event_or_pmu); in parse_events_multi_pmu_add_or_add_pmu()
1724 if (pmu && !parse_events_add_pmu(parse_state, *listp, pmu, const_parsed_terms, in parse_events_multi_pmu_add_or_add_pmu()
1737 pmu = NULL; in parse_events_multi_pmu_add_or_add_pmu()
1739 while ((pmu = perf_pmus__scan_matching_wildcard(pmu, event_or_pmu)) != NULL) { in parse_events_multi_pmu_add_or_add_pmu()
1741 if (parse_events__filter_pmu(parse_state, pmu)) in parse_events_multi_pmu_add_or_add_pmu()
1744 if (!parse_events_add_pmu(parse_state, *listp, pmu, in parse_events_multi_pmu_add_or_add_pmu()
1987 struct perf_pmu *pmu = evsel__find_pmu(evsel); in evsel__compute_group_pmu_name() local
1989 if (!pmu) { in evsel__compute_group_pmu_name()
1995 pmu = perf_pmus__scan_core(NULL); in evsel__compute_group_pmu_name()
1997 if (!pmu) { in evsel__compute_group_pmu_name()
2001 group_pmu_name = pmu->name; in evsel__compute_group_pmu_name()
2010 if (perf_pmu__is_software(pmu) || evsel__is_aux_event(leader)) { in evsel__compute_group_pmu_name()
2568 struct perf_pmu *pmu; in set_filter() local
2586 pmu = evsel__find_pmu(evsel); in set_filter()
2587 if (pmu) { in set_filter()
2588 perf_pmu__scan_file(pmu, "nr_addr_filters", in set_filter()