Lines Matching full:cpu

42 #include <machine/cpu.h>
61 void (*powerpc_set_pmc)(int cpu, int ri, int config);
106 powerpc_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) in powerpc_describe() argument
110 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_describe()
111 ("[powerpc,%d], illegal CPU %d", __LINE__, cpu)); in powerpc_describe()
113 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_describe()
116 pi->pm_class = powerpc_pcpu[cpu]->pc_class; in powerpc_describe()
130 powerpc_get_config(int cpu, int ri, struct pmc **ppm) in powerpc_get_config() argument
133 *ppm = powerpc_pcpu[cpu]->pc_ppcpmcs[ri].phw_pmc; in powerpc_get_config()
139 powerpc_pcpu_init(struct pmc_mdep *md, int cpu) in powerpc_pcpu_init() argument
146 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pcpu_init()
147 ("[powerpc,%d] wrong cpu number %d", __LINE__, cpu)); in powerpc_pcpu_init()
148 PMCDBG1(MDP,INI,1,"powerpc-init cpu=%d", cpu); in powerpc_pcpu_init()
150 powerpc_pcpu[cpu] = pac = malloc(sizeof(struct powerpc_cpu) + in powerpc_pcpu_init()
155 pc = pmc_pcpu[cpu]; in powerpc_pcpu_init()
157 KASSERT(pc != NULL, ("[powerpc,%d] NULL per-cpu pointer", __LINE__)); in powerpc_pcpu_init()
161 PMC_PHW_CPU_TO_STATE(cpu) | PMC_PHW_INDEX_TO_STATE(i); in powerpc_pcpu_init()
170 powerpc_pcpu_fini(struct pmc_mdep *md, int cpu) in powerpc_pcpu_fini() argument
172 PMCDBG1(MDP,INI,1,"powerpc-fini cpu=%d", cpu); in powerpc_pcpu_fini()
174 free(powerpc_pcpu[cpu], M_PMC); in powerpc_pcpu_fini()
175 powerpc_pcpu[cpu] = NULL; in powerpc_pcpu_fini()
181 powerpc_allocate_pmc(int cpu, int ri, struct pmc *pm, in powerpc_allocate_pmc() argument
188 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_allocate_pmc()
189 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_allocate_pmc()
225 PMCDBG3(MDP,ALL,1,"powerpc-allocate cpu=%d ri=%d -> config=0x%x", in powerpc_allocate_pmc()
226 cpu, ri, config); in powerpc_allocate_pmc()
231 powerpc_release_pmc(int cpu, int ri, struct pmc *pmc) in powerpc_release_pmc() argument
235 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_release_pmc()
236 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_release_pmc()
240 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_release_pmc()
248 powerpc_start_pmc(int cpu, int ri, struct pmc *pm) in powerpc_start_pmc() argument
251 PMCDBG2(MDP,STA,1,"powerpc-start cpu=%d ri=%d", cpu, ri); in powerpc_start_pmc()
252 powerpc_set_pmc(cpu, ri, pm->pm_md.pm_powerpc.pm_powerpc_evsel); in powerpc_start_pmc()
258 powerpc_stop_pmc(int cpu, int ri, struct pmc *pm __unused) in powerpc_stop_pmc() argument
260 PMCDBG2(MDP,STO,1, "powerpc-stop cpu=%d ri=%d", cpu, ri); in powerpc_stop_pmc()
261 powerpc_set_pmc(cpu, ri, PMCN_NONE); in powerpc_stop_pmc()
266 powerpc_config_pmc(int cpu, int ri, struct pmc *pm) in powerpc_config_pmc() argument
270 PMCDBG3(MDP,CFG,1, "powerpc-config cpu=%d ri=%d pm=%p", cpu, ri, pm); in powerpc_config_pmc()
272 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_config_pmc()
273 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_config_pmc()
277 phw = &powerpc_pcpu[cpu]->pc_ppcpmcs[ri]; in powerpc_config_pmc()
361 powerpc_read_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t *v) in powerpc_read_pmc() argument
365 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_read_pmc()
366 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_read_pmc()
400 PMCDBG5(MDP,REA,1,"ppc-read cpu=%d ri=%d -> %jx (%jx,%jx)", in powerpc_read_pmc()
401 cpu, ri, (uintmax_t)tmp, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_read_pmc()
408 powerpc_write_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t v) in powerpc_write_pmc() argument
412 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_write_pmc()
413 ("[powerpc,%d] illegal CPU value %d", __LINE__, cpu)); in powerpc_write_pmc()
422 "powerpc-write cpu=%d ri=%d: PMC value is too big: %jx", in powerpc_write_pmc()
423 cpu, ri, (uintmax_t)v); in powerpc_write_pmc()
428 PMCDBG5(MDP,WRI,1,"powerpc-write cpu=%d ri=%d -> %jx (%jx,%jx)", in powerpc_write_pmc()
429 cpu, ri, (uintmax_t)v, (uintmax_t)PPC_OVERFLOWCNT(pm), in powerpc_write_pmc()
441 int cpu, error, i, retval; in powerpc_pmc_intr() local
443 cpu = curcpu; in powerpc_pmc_intr()
444 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in powerpc_pmc_intr()
445 ("[powerpc,%d] out of range CPU %d", __LINE__, cpu)); in powerpc_pmc_intr()
447 PMCDBG3(MDP,INT,1, "cpu=%d tf=%p um=%d", cpu, (void *) tf, in powerpc_pmc_intr()
451 pc = powerpc_pcpu[cpu]; in powerpc_pmc_intr()
471 powerpc_write_pmc(cpu, i, pm, in powerpc_pmc_intr()
480 "cpu=%d ri=%d: overflowcnt=%d", in powerpc_pmc_intr()
481 cpu, i, PPC_OVERFLOWCNT(pm)); in powerpc_pmc_intr()
491 "cpu=%d ri=%d: error %d processing interrupt", in powerpc_pmc_intr()
492 cpu, i, error); in powerpc_pmc_intr()
493 powerpc_stop_pmc(cpu, i, pm); in powerpc_pmc_intr()
497 powerpc_write_pmc(cpu, i, pm, pm->pm_sc.pm_reloadcount); in powerpc_pmc_intr()
514 "pmc_intr: couldn't find interrupting PMC on cpu %d - " in powerpc_pmc_intr()
515 "disabling PERF interrupts\n", cpu); in powerpc_pmc_intr()
587 ("[powerpc,%d] non-null pcpu cpu %d", __LINE__, i)); in pmc_md_finalize()