Lines Matching refs:l2cache_pmu
159 struct l2cache_pmu { struct
188 struct l2cache_pmu *l2cache_pmu; argument
200 #define to_l2cache_pmu(p) (container_of(p, struct l2cache_pmu, pmu))
214 struct l2cache_pmu *l2cache_pmu, int cpu) in get_cluster_pmu() argument
216 return *per_cpu_ptr(l2cache_pmu->pmu_cluster, cpu); in get_cluster_pmu()
394 int num_ctrs = cluster->l2cache_pmu->num_counters - 1; in l2_cache_get_event_idx()
438 int num_counters = cluster->l2cache_pmu->num_counters; in l2_cache_handle_irq()
493 struct l2cache_pmu *l2cache_pmu; in l2_cache_event_init() local
498 l2cache_pmu = to_l2cache_pmu(event->pmu); in l2_cache_event_init()
501 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
507 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
515 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
523 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
532 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
540 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
546 cluster = get_cluster_pmu(l2cache_pmu, event->cpu); in l2_cache_event_init()
549 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
557 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
567 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
579 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, in l2_cache_event_init()
697 struct l2cache_pmu *l2cache_pmu = to_l2cache_pmu(dev_get_drvdata(dev)); in l2_cache_pmu_cpumask_show() local
699 return cpumap_print_to_pagebuf(true, buf, &l2cache_pmu->cpumask); in l2_cache_pmu_cpumask_show()
796 struct l2cache_pmu *l2cache_pmu, int cpu) in l2_cache_associate_cpu_with_cluster() argument
813 list_for_each_entry(cluster, &l2cache_pmu->clusters, next) { in l2_cache_associate_cpu_with_cluster()
817 dev_info(&l2cache_pmu->pdev->dev, in l2_cache_associate_cpu_with_cluster()
821 *per_cpu_ptr(l2cache_pmu->pmu_cluster, cpu) = cluster; in l2_cache_associate_cpu_with_cluster()
831 struct l2cache_pmu *l2cache_pmu; in l2cache_pmu_online_cpu() local
833 l2cache_pmu = hlist_entry_safe(node, struct l2cache_pmu, node); in l2cache_pmu_online_cpu()
834 cluster = get_cluster_pmu(l2cache_pmu, cpu); in l2cache_pmu_online_cpu()
837 cluster = l2_cache_associate_cpu_with_cluster(l2cache_pmu, cpu); in l2cache_pmu_online_cpu()
854 cpumask_set_cpu(cpu, &l2cache_pmu->cpumask); in l2cache_pmu_online_cpu()
866 struct l2cache_pmu *l2cache_pmu; in l2cache_pmu_offline_cpu() local
870 l2cache_pmu = hlist_entry_safe(node, struct l2cache_pmu, node); in l2cache_pmu_offline_cpu()
871 cluster = get_cluster_pmu(l2cache_pmu, cpu); in l2cache_pmu_offline_cpu()
880 cpumask_clear_cpu(cpu, &l2cache_pmu->cpumask); in l2cache_pmu_offline_cpu()
892 perf_pmu_migrate_context(&l2cache_pmu->pmu, cpu, target); in l2cache_pmu_offline_cpu()
894 cpumask_set_cpu(target, &l2cache_pmu->cpumask); in l2cache_pmu_offline_cpu()
904 struct l2cache_pmu *l2cache_pmu = data; in l2_cache_pmu_probe_cluster() local
924 list_add(&cluster->next, &l2cache_pmu->clusters); in l2_cache_pmu_probe_cluster()
937 cluster->l2cache_pmu = l2cache_pmu; in l2_cache_pmu_probe_cluster()
954 l2cache_pmu->num_pmus++; in l2_cache_pmu_probe_cluster()
962 struct l2cache_pmu *l2cache_pmu; in l2_cache_pmu_probe() local
964 l2cache_pmu = in l2_cache_pmu_probe()
965 devm_kzalloc(&pdev->dev, sizeof(*l2cache_pmu), GFP_KERNEL); in l2_cache_pmu_probe()
966 if (!l2cache_pmu) in l2_cache_pmu_probe()
969 INIT_LIST_HEAD(&l2cache_pmu->clusters); in l2_cache_pmu_probe()
971 platform_set_drvdata(pdev, l2cache_pmu); in l2_cache_pmu_probe()
972 l2cache_pmu->pmu = (struct pmu) { in l2_cache_pmu_probe()
987 l2cache_pmu->num_counters = get_num_counters(); in l2_cache_pmu_probe()
988 l2cache_pmu->pdev = pdev; in l2_cache_pmu_probe()
989 l2cache_pmu->pmu_cluster = devm_alloc_percpu(&pdev->dev, in l2_cache_pmu_probe()
991 if (!l2cache_pmu->pmu_cluster) in l2_cache_pmu_probe()
994 l2_cycle_ctr_idx = l2cache_pmu->num_counters - 1; in l2_cache_pmu_probe()
995 l2_counter_present_mask = GENMASK(l2cache_pmu->num_counters - 2, 0) | in l2_cache_pmu_probe()
998 cpumask_clear(&l2cache_pmu->cpumask); in l2_cache_pmu_probe()
1001 err = device_for_each_child(&pdev->dev, l2cache_pmu, in l2_cache_pmu_probe()
1006 if (l2cache_pmu->num_pmus == 0) { in l2_cache_pmu_probe()
1012 &l2cache_pmu->node); in l2_cache_pmu_probe()
1018 err = perf_pmu_register(&l2cache_pmu->pmu, l2cache_pmu->pmu.name, -1); in l2_cache_pmu_probe()
1025 l2cache_pmu->num_pmus); in l2_cache_pmu_probe()
1031 &l2cache_pmu->node); in l2_cache_pmu_probe()
1037 struct l2cache_pmu *l2cache_pmu = in l2_cache_pmu_remove() local
1040 perf_pmu_unregister(&l2cache_pmu->pmu); in l2_cache_pmu_remove()
1042 &l2cache_pmu->node); in l2_cache_pmu_remove()