Lines Matching refs:pmu_entry
465 static int init_pmu_entry_by_type_and_add(struct amdgpu_pmu_entry *pmu_entry, in init_pmu_entry_by_type_and_add() argument
469 &pmu_entry->fmt_attr_group, in init_pmu_entry_by_type_and_add()
470 &pmu_entry->evt_attr_group, in init_pmu_entry_by_type_and_add()
476 pmu_entry->pmu = (struct pmu){ in init_pmu_entry_by_type_and_add()
486 ret = amdgpu_pmu_alloc_pmu_attrs(&pmu_entry->fmt_attr_group, in init_pmu_entry_by_type_and_add()
487 &pmu_entry->fmt_attr, in init_pmu_entry_by_type_and_add()
488 &pmu_entry->evt_attr_group, in init_pmu_entry_by_type_and_add()
489 &pmu_entry->evt_attr, in init_pmu_entry_by_type_and_add()
495 amdgpu_pmu_create_attrs(&pmu_entry->fmt_attr_group, pmu_entry->fmt_attr, in init_pmu_entry_by_type_and_add()
498 if (pmu_entry->pmu_perf_type == AMDGPU_PMU_PERF_TYPE_ALL) { in init_pmu_entry_by_type_and_add()
503 &pmu_entry->evt_attr_group, in init_pmu_entry_by_type_and_add()
504 pmu_entry->evt_attr, in init_pmu_entry_by_type_and_add()
513 amdgpu_pmu_create_attrs(&pmu_entry->evt_attr_group, in init_pmu_entry_by_type_and_add()
514 pmu_entry->evt_attr, in init_pmu_entry_by_type_and_add()
519 pmu_entry->pmu.attr_groups = kmemdup(attr_groups, sizeof(attr_groups), in init_pmu_entry_by_type_and_add()
522 if (!pmu_entry->pmu.attr_groups) { in init_pmu_entry_by_type_and_add()
527 snprintf(pmu_name, PMU_NAME_SIZE, "%s_%d", pmu_entry->pmu_file_prefix, in init_pmu_entry_by_type_and_add()
528 adev_to_drm(pmu_entry->adev)->primary->index); in init_pmu_entry_by_type_and_add()
530 ret = perf_pmu_register(&pmu_entry->pmu, pmu_name, -1); in init_pmu_entry_by_type_and_add()
535 if (pmu_entry->pmu_perf_type != AMDGPU_PMU_PERF_TYPE_ALL) in init_pmu_entry_by_type_and_add()
537 pmu_entry->pmu_type_name, total_num_events); in init_pmu_entry_by_type_and_add()
542 list_add_tail(&pmu_entry->entry, &amdgpu_pmu_list); in init_pmu_entry_by_type_and_add()
546 kfree(pmu_entry->pmu.attr_groups); in init_pmu_entry_by_type_and_add()
548 kfree(pmu_entry->fmt_attr_group.attrs); in init_pmu_entry_by_type_and_add()
549 kfree(pmu_entry->fmt_attr); in init_pmu_entry_by_type_and_add()
550 kfree(pmu_entry->evt_attr_group.attrs); in init_pmu_entry_by_type_and_add()
551 kfree(pmu_entry->evt_attr); in init_pmu_entry_by_type_and_add()
554 pmu_entry->pmu_type_name); in init_pmu_entry_by_type_and_add()
582 struct amdgpu_pmu_entry *pmu_entry; in create_pmu_entry() local
584 pmu_entry = kzalloc(sizeof(struct amdgpu_pmu_entry), GFP_KERNEL); in create_pmu_entry()
586 if (!pmu_entry) in create_pmu_entry()
587 return pmu_entry; in create_pmu_entry()
589 pmu_entry->adev = adev; in create_pmu_entry()
590 pmu_entry->fmt_attr_group.name = "format"; in create_pmu_entry()
591 pmu_entry->fmt_attr_group.attrs = NULL; in create_pmu_entry()
592 pmu_entry->evt_attr_group.name = "events"; in create_pmu_entry()
593 pmu_entry->evt_attr_group.attrs = NULL; in create_pmu_entry()
594 pmu_entry->pmu_perf_type = pmu_type; in create_pmu_entry()
595 pmu_entry->pmu_type_name = pmu_type_name; in create_pmu_entry()
596 pmu_entry->pmu_file_prefix = pmu_file_prefix; in create_pmu_entry()
598 return pmu_entry; in create_pmu_entry()
605 struct amdgpu_pmu_entry *pmu_entry, *pmu_entry_df; in amdgpu_pmu_init() local
623 pmu_entry = create_pmu_entry(adev, AMDGPU_PMU_PERF_TYPE_ALL, in amdgpu_pmu_init()
626 if (!pmu_entry) { in amdgpu_pmu_init()
631 ret = init_pmu_entry_by_type_and_add(pmu_entry, in amdgpu_pmu_init()
635 kfree(pmu_entry); in amdgpu_pmu_init()
642 pmu_entry = create_pmu_entry(adev, AMDGPU_PMU_PERF_TYPE_ALL, in amdgpu_pmu_init()
644 if (!pmu_entry) in amdgpu_pmu_init()
647 ret = init_pmu_entry_by_type_and_add(pmu_entry, in amdgpu_pmu_init()
651 kfree(pmu_entry); in amdgpu_pmu_init()