Lines Matching refs:cpu

62 void (*powerpc_set_pmc)(int cpu, int ri, int config);
107 powerpc_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) in powerpc_describe() argument
111 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_describe()
112 ("[powerpc,%d], illegal CPU %d", __LINE__, cpu)); in powerpc_describe()
114 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_describe()
117 pi->pm_class = powerpc_pcpu[cpu]->pc_class; in powerpc_describe()
131 powerpc_get_config(int cpu, int ri, struct pmc **ppm) in powerpc_get_config() argument
134 *ppm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_get_config()
140 powerpc_pcpu_init(struct pmc_mdep *md, int cpu) in powerpc_pcpu_init() argument
147 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pcpu_init()
148 ("[powerpc,%d] wrong cpu number %d", __LINE__, cpu)); in powerpc_pcpu_init()
149 PMCDBG1(MDP,INI,1,"powerpc-init cpu=%d", cpu); in powerpc_pcpu_init()
151 powerpc_pcpu[cpu] = pac = malloc(sizeof(struct powerpc_cpu) + in powerpc_pcpu_init()
156 pc = pmc_pcpu[cpu]; in powerpc_pcpu_init()
162 PMC_PHW_CPU_TO_STATE(cpu) | PMC_PHW_INDEX_TO_STATE(i); in powerpc_pcpu_init()
171 powerpc_pcpu_fini(struct pmc_mdep *md, int cpu) in powerpc_pcpu_fini() argument
173 PMCDBG1(MDP,INI,1,"powerpc-fini cpu=%d", cpu); in powerpc_pcpu_fini()
175 free(powerpc_pcpu[cpu], M_PMC); in powerpc_pcpu_fini()
176 powerpc_pcpu[cpu] = NULL; in powerpc_pcpu_fini()
182 powerpc_allocate_pmc(int cpu, int ri, struct pmc *pm, in powerpc_allocate_pmc() argument
189 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_allocate_pmc()
190 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_allocate_pmc()
227 cpu, ri, config); in powerpc_allocate_pmc()
232 powerpc_release_pmc(int cpu, int ri, struct pmc *pmc) in powerpc_release_pmc() argument
236 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_release_pmc()
237 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_release_pmc()
241 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_release_pmc()
249 powerpc_start_pmc(int cpu, int ri, struct pmc *pm) in powerpc_start_pmc() argument
252 PMCDBG2(MDP,STA,1,"powerpc-start cpu=%d ri=%d", cpu, ri); in powerpc_start_pmc()
253 powerpc_set_pmc(cpu, ri, pm->pm_md.pm_powerpc.pm_powerpc_evsel); in powerpc_start_pmc()
259 powerpc_stop_pmc(int cpu, int ri, struct pmc *pm __unused) in powerpc_stop_pmc() argument
261 PMCDBG2(MDP,STO,1, "powerpc-stop cpu=%d ri=%d", cpu, ri); in powerpc_stop_pmc()
262 powerpc_set_pmc(cpu, ri, PMCN_NONE); in powerpc_stop_pmc()
267 powerpc_config_pmc(int cpu, int ri, struct pmc *pm) in powerpc_config_pmc() argument
271 PMCDBG3(MDP,CFG,1, "powerpc-config cpu=%d ri=%d pm=%p", cpu, ri, pm); in powerpc_config_pmc()
273 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_config_pmc()
274 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_config_pmc()
278 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_config_pmc()
362 powerpc_read_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t *v) in powerpc_read_pmc() argument
366 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_read_pmc()
367 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_read_pmc()
402 cpu, ri, (uintmax_t)tmp, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_read_pmc()
409 powerpc_write_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t v) in powerpc_write_pmc() argument
413 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_write_pmc()
414 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_write_pmc()
424 cpu, ri, (uintmax_t)v); in powerpc_write_pmc()
430 cpu, ri, (uintmax_t)v, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_write_pmc()
442 int cpu, error, i, retval; in powerpc_pmc_intr() local
444 cpu = curcpu; in powerpc_pmc_intr()
445 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pmc_intr()
446 ("[powerpc,%d] out of range CPU %d", __LINE__, cpu)); in powerpc_pmc_intr()
448 PMCDBG3(MDP,INT,1, "cpu=%d tf=%p um=%d", cpu, (void *) tf, in powerpc_pmc_intr()
452 pc = powerpc_pcpu[cpu]; in powerpc_pmc_intr()
472 powerpc_write_pmc(cpu, i, pm, in powerpc_pmc_intr()
482 cpu, i, PPC_OVERFLOWCNT(pm)); in powerpc_pmc_intr()
493 cpu, i, error); in powerpc_pmc_intr()
494 powerpc_stop_pmc(cpu, i, pm); in powerpc_pmc_intr()
498 powerpc_write_pmc(cpu, i, pm, pm->pm_sc.pm_reloadcount); in powerpc_pmc_intr()
516 "disabling PERF interrupts\n", cpu); in powerpc_pmc_intr()