Lines Matching refs:pmu
61 return container_of(event->pmu, struct imc_pmu, pmu); in imc_event_to_pmu()
105 struct pmu *pmu = dev_get_drvdata(dev); in imc_pmu_cpumask_get_attr() local
106 struct imc_pmu *imc_pmu = container_of(pmu, struct imc_pmu, pmu); in imc_pmu_cpumask_get_attr()
221 static int update_events_in_group(struct device_node *node, struct imc_pmu *pmu) in update_events_in_group() argument
260 pmu->events = kcalloc(ct, sizeof(struct imc_events), GFP_KERNEL); in update_events_in_group()
261 if (!pmu->events) { in update_events_in_group()
269 ret = imc_parse_event(np, g_scale, g_unit, prefix, base_reg, &pmu->events[ct]); in update_events_in_group()
279 imc_free_events(pmu->events, ct); in update_events_in_group()
294 imc_free_events(pmu->events, ct); in update_events_in_group()
301 ev_val_str = kasprintf(GFP_KERNEL, "event=0x%x", pmu->events[i].value); in update_events_in_group()
304 dev_str = device_str_attr_create(pmu->events[i].name, ev_val_str); in update_events_in_group()
309 if (pmu->events[i].scale) { in update_events_in_group()
310 ev_scale_str = kasprintf(GFP_KERNEL, "%s.scale", pmu->events[i].name); in update_events_in_group()
313 dev_str = device_str_attr_create(ev_scale_str, pmu->events[i].scale); in update_events_in_group()
320 if (pmu->events[i].unit) { in update_events_in_group()
321 ev_unit_str = kasprintf(GFP_KERNEL, "%s.unit", pmu->events[i].name); in update_events_in_group()
324 dev_str = device_str_attr_create(ev_unit_str, pmu->events[i].unit); in update_events_in_group()
333 pmu->attr_groups[IMC_EVENT_ATTR] = attr_group; in update_events_in_group()
352 perf_pmu_migrate_context(&(*pn)->pmu, old_cpu, new_cpu); in nest_change_cpu_context()
516 struct imc_pmu *pmu; in nest_imc_event_init() local
520 if (event->attr.type != event->pmu->type) in nest_imc_event_init()
530 pmu = imc_event_to_pmu(event); in nest_imc_event_init()
533 if ((config & IMC_EVENT_OFFSET_MASK) > pmu->counter_mem_size) in nest_imc_event_init()
546 pcni = pmu->mem_info; in nest_imc_event_init()
697 if (!core_imc_pmu->pmu.event_init) in ppc_core_imc_cpu_offline()
708 perf_pmu_migrate_context(&core_imc_pmu->pmu, cpu, ncpu); in ppc_core_imc_cpu_offline()
819 struct imc_pmu *pmu; in core_imc_event_init() local
822 if (event->attr.type != event->pmu->type) in core_imc_event_init()
833 pmu = imc_event_to_pmu(event); in core_imc_event_init()
836 if (((config & IMC_EVENT_OFFSET_MASK) > pmu->counter_mem_size)) in core_imc_event_init()
984 struct imc_pmu *pmu; in thread_imc_event_init() local
986 if (event->attr.type != event->pmu->type) in thread_imc_event_init()
997 pmu = imc_event_to_pmu(event); in thread_imc_event_init()
1000 if (((config & IMC_EVENT_OFFSET_MASK) > pmu->counter_mem_size)) in thread_imc_event_init()
1021 event->pmu->task_ctx_nr = perf_sw_context; in thread_imc_event_init()
1028 if (!strncmp(event->pmu->name, "thread_imc", strlen("thread_imc"))) in is_thread_imc_pmu()
1046 static void thread_imc_pmu_start_txn(struct pmu *pmu, in thread_imc_pmu_start_txn() argument
1051 perf_pmu_disable(pmu); in thread_imc_pmu_start_txn()
1054 static void thread_imc_pmu_cancel_txn(struct pmu *pmu) in thread_imc_pmu_cancel_txn() argument
1056 perf_pmu_enable(pmu); in thread_imc_pmu_cancel_txn()
1059 static int thread_imc_pmu_commit_txn(struct pmu *pmu) in thread_imc_pmu_commit_txn() argument
1061 perf_pmu_enable(pmu); in thread_imc_pmu_commit_txn()
1439 if (event->attr.type != event->pmu->type) in trace_imc_event_init()
1474 event->pmu->task_ctx_nr = perf_sw_context; in trace_imc_event_init()
1480 static int update_pmu_ops(struct imc_pmu *pmu) in update_pmu_ops() argument
1482 pmu->pmu.task_ctx_nr = perf_invalid_context; in update_pmu_ops()
1483 pmu->pmu.add = imc_event_add; in update_pmu_ops()
1484 pmu->pmu.del = imc_event_stop; in update_pmu_ops()
1485 pmu->pmu.start = imc_event_start; in update_pmu_ops()
1486 pmu->pmu.stop = imc_event_stop; in update_pmu_ops()
1487 pmu->pmu.read = imc_event_update; in update_pmu_ops()
1488 pmu->pmu.attr_groups = pmu->attr_groups; in update_pmu_ops()
1489 pmu->pmu.capabilities = PERF_PMU_CAP_NO_EXCLUDE; in update_pmu_ops()
1490 pmu->attr_groups[IMC_FORMAT_ATTR] = &imc_format_group; in update_pmu_ops()
1492 switch (pmu->domain) { in update_pmu_ops()
1494 pmu->pmu.event_init = nest_imc_event_init; in update_pmu_ops()
1495 pmu->attr_groups[IMC_CPUMASK_ATTR] = &imc_pmu_cpumask_attr_group; in update_pmu_ops()
1498 pmu->pmu.event_init = core_imc_event_init; in update_pmu_ops()
1499 pmu->attr_groups[IMC_CPUMASK_ATTR] = &imc_pmu_cpumask_attr_group; in update_pmu_ops()
1502 pmu->pmu.event_init = thread_imc_event_init; in update_pmu_ops()
1503 pmu->pmu.add = thread_imc_event_add; in update_pmu_ops()
1504 pmu->pmu.del = thread_imc_event_del; in update_pmu_ops()
1505 pmu->pmu.start_txn = thread_imc_pmu_start_txn; in update_pmu_ops()
1506 pmu->pmu.cancel_txn = thread_imc_pmu_cancel_txn; in update_pmu_ops()
1507 pmu->pmu.commit_txn = thread_imc_pmu_commit_txn; in update_pmu_ops()
1510 pmu->pmu.event_init = trace_imc_event_init; in update_pmu_ops()
1511 pmu->pmu.add = trace_imc_event_add; in update_pmu_ops()
1512 pmu->pmu.del = trace_imc_event_del; in update_pmu_ops()
1513 pmu->pmu.start = trace_imc_event_start; in update_pmu_ops()
1514 pmu->pmu.stop = trace_imc_event_stop; in update_pmu_ops()
1515 pmu->pmu.read = trace_imc_event_read; in update_pmu_ops()
1516 pmu->attr_groups[IMC_FORMAT_ATTR] = &trace_imc_format_group; in update_pmu_ops()
1678 perf_pmu_unregister(&thread_imc_pmu->pmu); in unregister_thread_imc()
1696 pmu_ptr->pmu.name = kasprintf(GFP_KERNEL, "%s%s_imc", "nest_", s); in imc_mem_init()
1697 if (!pmu_ptr->pmu.name) in imc_mem_init()
1712 pmu_ptr->pmu.name = kasprintf(GFP_KERNEL, "%s%s", s, "_imc"); in imc_mem_init()
1713 if (!pmu_ptr->pmu.name) in imc_mem_init()
1735 pmu_ptr->pmu.name = kasprintf(GFP_KERNEL, "%s%s", s, "_imc"); in imc_mem_init()
1736 if (!pmu_ptr->pmu.name) in imc_mem_init()
1752 pmu_ptr->pmu.name = kasprintf(GFP_KERNEL, "%s%s", s, "_imc"); in imc_mem_init()
1753 if (!pmu_ptr->pmu.name) in imc_mem_init()
1864 ret = perf_pmu_register(&pmu_ptr->pmu, pmu_ptr->pmu.name, -1); in init_imc_pmu()
1869 pmu_ptr->pmu.name); in init_imc_pmu()