Lines Matching refs:cpu
63 void (*powerpc_set_pmc)(int cpu, int ri, int config);
122 powerpc_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) in powerpc_describe() argument
128 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_describe()
129 ("[powerpc,%d], illegal CPU %d", __LINE__, cpu)); in powerpc_describe()
131 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_describe()
136 pi->pm_class = powerpc_pcpu[cpu]->pc_class; in powerpc_describe()
149 powerpc_get_config(int cpu, int ri, struct pmc **ppm) in powerpc_get_config() argument
152 *ppm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_get_config()
158 powerpc_pcpu_init(struct pmc_mdep *md, int cpu) in powerpc_pcpu_init() argument
165 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pcpu_init()
166 ("[powerpc,%d] wrong cpu number %d", __LINE__, cpu)); in powerpc_pcpu_init()
167 PMCDBG1(MDP,INI,1,"powerpc-init cpu=%d", cpu); in powerpc_pcpu_init()
169 powerpc_pcpu[cpu] = pac = malloc(sizeof(struct powerpc_cpu), M_PMC, in powerpc_pcpu_init()
176 pc = pmc_pcpu[cpu]; in powerpc_pcpu_init()
182 PMC_PHW_CPU_TO_STATE(cpu) | PMC_PHW_INDEX_TO_STATE(i); in powerpc_pcpu_init()
191 powerpc_pcpu_fini(struct pmc_mdep *md, int cpu) in powerpc_pcpu_fini() argument
193 PMCDBG1(MDP,INI,1,"powerpc-fini cpu=%d", cpu); in powerpc_pcpu_fini()
195 free(powerpc_pcpu[cpu]->pc_ppcpmcs, M_PMC); in powerpc_pcpu_fini()
196 free(powerpc_pcpu[cpu], M_PMC); in powerpc_pcpu_fini()
202 powerpc_allocate_pmc(int cpu, int ri, struct pmc *pm, in powerpc_allocate_pmc() argument
209 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_allocate_pmc()
210 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_allocate_pmc()
244 cpu, ri, config); in powerpc_allocate_pmc()
249 powerpc_release_pmc(int cpu, int ri, struct pmc *pmc) in powerpc_release_pmc() argument
253 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_release_pmc()
254 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_release_pmc()
258 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_release_pmc()
266 powerpc_start_pmc(int cpu, int ri) in powerpc_start_pmc() argument
270 PMCDBG2(MDP,STA,1,"powerpc-start cpu=%d ri=%d", cpu, ri); in powerpc_start_pmc()
271 pm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_start_pmc()
272 powerpc_set_pmc(cpu, ri, pm->pm_md.pm_powerpc.pm_powerpc_evsel); in powerpc_start_pmc()
278 powerpc_stop_pmc(int cpu, int ri) in powerpc_stop_pmc() argument
280 PMCDBG2(MDP,STO,1, "powerpc-stop cpu=%d ri=%d", cpu, ri); in powerpc_stop_pmc()
281 powerpc_set_pmc(cpu, ri, PMCN_NONE); in powerpc_stop_pmc()
286 powerpc_config_pmc(int cpu, int ri, struct pmc *pm) in powerpc_config_pmc() argument
290 PMCDBG3(MDP,CFG,1, "powerpc-config cpu=%d ri=%d pm=%p", cpu, ri, pm); in powerpc_config_pmc()
292 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_config_pmc()
293 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_config_pmc()
297 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_config_pmc()
381 powerpc_read_pmc(int cpu, int ri, pmc_value_t *v) in powerpc_read_pmc() argument
386 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_read_pmc()
387 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_read_pmc()
391 pm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_read_pmc()
393 ("[core,%d] cpu %d ri %d pmc not configured", __LINE__, cpu, in powerpc_read_pmc()
427 cpu, ri, (uintmax_t)tmp, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_read_pmc()
434 powerpc_write_pmc(int cpu, int ri, pmc_value_t v) in powerpc_write_pmc() argument
439 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_write_pmc()
440 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_write_pmc()
444 pm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_write_pmc()
452 cpu, ri, (uintmax_t)v); in powerpc_write_pmc()
458 cpu, ri, (uintmax_t)v, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_write_pmc()
470 int cpu, error, i, retval; in powerpc_pmc_intr() local
472 cpu = curcpu; in powerpc_pmc_intr()
473 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pmc_intr()
474 ("[powerpc,%d] out of range CPU %d", __LINE__, cpu)); in powerpc_pmc_intr()
476 PMCDBG3(MDP,INT,1, "cpu=%d tf=%p um=%d", cpu, (void *) tf, in powerpc_pmc_intr()
480 pc = powerpc_pcpu[cpu]; in powerpc_pmc_intr()
500 powerpc_write_pmc(cpu, i, in powerpc_pmc_intr()
510 cpu, i, PPC_OVERFLOWCNT(pm)); in powerpc_pmc_intr()
521 cpu, i, error); in powerpc_pmc_intr()
522 powerpc_stop_pmc(cpu, i); in powerpc_pmc_intr()
526 powerpc_write_pmc(cpu, i, pm->pm_sc.pm_reloadcount); in powerpc_pmc_intr()
544 "disabling PERF interrupts\n", cpu); in powerpc_pmc_intr()