Lines Matching refs:pmu
105 struct perf_pmu pmu; member
127 bool perf_pmu__is_hwmon(const struct perf_pmu *pmu) in perf_pmu__is_hwmon() argument
129 return pmu && pmu->type >= PERF_PMU_TYPE_HWMON_START && in perf_pmu__is_hwmon()
130 pmu->type <= PERF_PMU_TYPE_HWMON_END; in perf_pmu__is_hwmon()
135 return perf_pmu__is_hwmon(evsel->pmu); in evsel__is_hwmon()
236 static int hwmon_pmu__read_events(struct hwmon_pmu *pmu) in hwmon_pmu__read_events() argument
244 if (pmu->pmu.sysfs_aliases_loaded) in hwmon_pmu__read_events()
248 io_dir__init(&dir, open(pmu->hwmon_dir, O_CLOEXEC | O_DIRECTORY | O_RDONLY)); in hwmon_pmu__read_events()
270 if (!hashmap__find(&pmu->events, key.type_and_num, &value)) { in hwmon_pmu__read_events()
276 err = hashmap__add(&pmu->events, key.type_and_num, value); in hwmon_pmu__read_events()
302 pmu->pmu.name, ent->d_name); in hwmon_pmu__read_events()
320 if (hashmap__size(&pmu->events) == 0) in hwmon_pmu__read_events()
321 pr_debug2("hwmon_pmu: %s has no events\n", pmu->pmu.name); in hwmon_pmu__read_events()
323 hashmap__for_each_entry_safe((&pmu->events), cur, tmp, bkt) { in hwmon_pmu__read_events()
331 pmu->pmu.name, hwmon_type_strs[key.type], key.num); in hwmon_pmu__read_events()
332 hashmap__delete(&pmu->events, key.type_and_num, &key, &value); in hwmon_pmu__read_events()
338 pmu->pmu.sysfs_aliases_loaded = true; in hwmon_pmu__read_events()
364 if (perf_pmu__init(&hwm->pmu, type, buf) != 0) { in hwmon_pmu__new()
365 perf_pmu__delete(&hwm->pmu); in hwmon_pmu__new()
371 perf_pmu__delete(&hwm->pmu); in hwmon_pmu__new()
374 hwm->pmu.alias_name = strdup(sysfs_name); in hwmon_pmu__new()
375 if (!hwm->pmu.alias_name) { in hwmon_pmu__new()
376 perf_pmu__delete(&hwm->pmu); in hwmon_pmu__new()
379 hwm->pmu.cpus = perf_cpu_map__new("0"); in hwmon_pmu__new()
380 if (!hwm->pmu.cpus) { in hwmon_pmu__new()
381 perf_pmu__delete(&hwm->pmu); in hwmon_pmu__new()
384 INIT_LIST_HEAD(&hwm->pmu.format); in hwmon_pmu__new()
385 INIT_LIST_HEAD(&hwm->pmu.caps); in hwmon_pmu__new()
389 list_add_tail(&hwm->pmu.list, pmus); in hwmon_pmu__new()
390 return &hwm->pmu; in hwmon_pmu__new()
393 void hwmon_pmu__exit(struct perf_pmu *pmu) in hwmon_pmu__exit() argument
395 struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu); in hwmon_pmu__exit()
459 int hwmon_pmu__for_each_event(struct perf_pmu *pmu, void *state, pmu_event_callback cb) in hwmon_pmu__for_each_event() argument
461 struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu); in hwmon_pmu__for_each_event()
503 .pmu = pmu, in hwmon_pmu__for_each_event()
511 .pmu_name = pmu->name, in hwmon_pmu__for_each_event()
526 pmu->name + 6, in hwmon_pmu__for_each_event()
536 pmu->name, cur->key); in hwmon_pmu__for_each_event()
545 size_t hwmon_pmu__num_events(struct perf_pmu *pmu) in hwmon_pmu__num_events() argument
547 struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu); in hwmon_pmu__num_events()
553 bool hwmon_pmu__have_event(struct perf_pmu *pmu, const char *name) in hwmon_pmu__have_event() argument
555 struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu); in hwmon_pmu__have_event()
646 int hwmon_pmu__config_terms(const struct perf_pmu *pmu, in hwmon_pmu__config_terms() argument
651 struct hwmon_pmu *hwm = container_of(pmu, struct hwmon_pmu, pmu); in hwmon_pmu__config_terms()
763 struct hwmon_pmu *hwm = container_of(evsel->pmu, struct hwmon_pmu, pmu); in evsel__hwmon_pmu_open()