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