Lines Matching full:cpu
41 #include <machine/cpu.h>
80 uncore_pcpu_noop(struct pmc_mdep *md, int cpu) in uncore_pcpu_noop() argument
83 (void) cpu; in uncore_pcpu_noop()
88 uncore_pcpu_init(struct pmc_mdep *md, int cpu) in uncore_pcpu_init() argument
95 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in uncore_pcpu_init()
96 ("[ucf,%d] insane cpu number %d", __LINE__, cpu)); in uncore_pcpu_init()
98 PMCDBG1(MDP,INI,1,"uncore-init cpu=%d", cpu); in uncore_pcpu_init()
107 uncore_pcpu[cpu] = cc; in uncore_pcpu_init()
108 pc = pmc_pcpu[cpu]; in uncore_pcpu_init()
111 ("[uncore,%d] NULL per-cpu structures cpu=%d", __LINE__, cpu)); in uncore_pcpu_init()
115 PMC_PHW_CPU_TO_STATE(cpu) | in uncore_pcpu_init()
125 uncore_pcpu_fini(struct pmc_mdep *md, int cpu) in uncore_pcpu_fini() argument
131 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in uncore_pcpu_fini()
132 ("[uncore,%d] insane cpu number (%d)", __LINE__, cpu)); in uncore_pcpu_fini()
134 PMCDBG1(MDP,INI,1,"uncore-pcpu-fini cpu=%d", cpu); in uncore_pcpu_fini()
136 if ((cc = uncore_pcpu[cpu]) == NULL) in uncore_pcpu_fini()
139 uncore_pcpu[cpu] = NULL; in uncore_pcpu_fini()
141 pc = pmc_pcpu[cpu]; in uncore_pcpu_fini()
143 KASSERT(pc != NULL, ("[uncore,%d] NULL per-cpu %d state", __LINE__, in uncore_pcpu_fini()
144 cpu)); in uncore_pcpu_fini()
185 ucf_allocate_pmc(int cpu, int ri, struct pmc *pm, in ucf_allocate_pmc() argument
190 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_allocate_pmc()
191 ("[uncore,%d] illegal CPU %d", __LINE__, cpu)); in ucf_allocate_pmc()
215 ucf_config_pmc(int cpu, int ri, struct pmc *pm) in ucf_config_pmc() argument
217 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_config_pmc()
218 ("[uncore,%d] illegal CPU %d", __LINE__, cpu)); in ucf_config_pmc()
223 PMCDBG3(MDP,CFG,1, "ucf-config cpu=%d ri=%d pm=%p", cpu, ri, pm); in ucf_config_pmc()
225 KASSERT(uncore_pcpu[cpu] != NULL, ("[uncore,%d] null per-cpu %d", __LINE__, in ucf_config_pmc()
226 cpu)); in ucf_config_pmc()
228 uncore_pcpu[cpu]->pc_uncorepmcs[ri + uncore_ucf_ri].phw_pmc = pm; in ucf_config_pmc()
234 ucf_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) in ucf_describe() argument
238 phw = &uncore_pcpu[cpu]->pc_uncorepmcs[ri + uncore_ucf_ri]; in ucf_describe()
255 ucf_get_config(int cpu, int ri, struct pmc **ppm) in ucf_get_config() argument
257 *ppm = uncore_pcpu[cpu]->pc_uncorepmcs[ri + uncore_ucf_ri].phw_pmc; in ucf_get_config()
263 ucf_read_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t *v) in ucf_read_pmc() argument
267 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_read_pmc()
268 ("[uncore,%d] illegal cpu value %d", __LINE__, cpu)); in ucf_read_pmc()
279 PMCDBG3(MDP,REA,1, "ucf-read cpu=%d ri=%d -> v=%jx", cpu, ri, *v); in ucf_read_pmc()
285 ucf_release_pmc(int cpu, int ri, struct pmc *pmc) in ucf_release_pmc() argument
287 PMCDBG3(MDP,REL,1, "ucf-release cpu=%d ri=%d pm=%p", cpu, ri, pmc); in ucf_release_pmc()
289 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_release_pmc()
290 ("[uncore,%d] illegal CPU value %d", __LINE__, cpu)); in ucf_release_pmc()
294 KASSERT(uncore_pcpu[cpu]->pc_uncorepmcs[ri + uncore_ucf_ri].phw_pmc == NULL, in ucf_release_pmc()
301 ucf_start_pmc(int cpu, int ri, struct pmc *pm) in ucf_start_pmc() argument
305 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_start_pmc()
306 ("[uncore,%d] illegal CPU value %d", __LINE__, cpu)); in ucf_start_pmc()
310 PMCDBG2(MDP,STA,1,"ucf-start cpu=%d ri=%d", cpu, ri); in ucf_start_pmc()
312 ucfc = uncore_pcpu[cpu]; in ucf_start_pmc()
328 ucf_stop_pmc(int cpu, int ri, struct pmc *pm __unused) in ucf_stop_pmc() argument
333 PMCDBG2(MDP,STO,1,"ucf-stop cpu=%d ri=%d", cpu, ri); in ucf_stop_pmc()
335 ucfc = uncore_pcpu[cpu]; in ucf_stop_pmc()
337 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_stop_pmc()
338 ("[uncore,%d] illegal CPU value %d", __LINE__, cpu)); in ucf_stop_pmc()
359 ucf_write_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t v) in ucf_write_pmc() argument
363 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucf_write_pmc()
364 ("[uncore,%d] illegal cpu value %d", __LINE__, cpu)); in ucf_write_pmc()
368 cc = uncore_pcpu[cpu]; in ucf_write_pmc()
377 PMCDBG4(MDP,WRI,1, "ucf-write cpu=%d ri=%d v=%jx ucfctrl=%jx ", in ucf_write_pmc()
378 cpu, ri, v, (uintmax_t) rdmsr(UCF_CTRL)); in ucf_write_pmc()
440 #define UCP_F_I7 (1 << 0) /* CPU: Core i7 */
441 #define UCP_F_WM (1 << 1) /* CPU: Westmere */
442 #define UCP_F_SB (1 << 2) /* CPU: Sandy Bridge */
443 #define UCP_F_HW (1 << 3) /* CPU: Haswell */
489 ucp_allocate_pmc(int cpu, int ri, struct pmc *pm, in ucp_allocate_pmc() argument
495 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_allocate_pmc()
496 ("[uncore,%d] illegal CPU %d", __LINE__, cpu)); in ucp_allocate_pmc()
524 ucp_config_pmc(int cpu, int ri, struct pmc *pm) in ucp_config_pmc() argument
526 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_config_pmc()
527 ("[uncore,%d] illegal CPU %d", __LINE__, cpu)); in ucp_config_pmc()
532 PMCDBG3(MDP,CFG,1, "ucp-config cpu=%d ri=%d pm=%p", cpu, ri, pm); in ucp_config_pmc()
534 KASSERT(uncore_pcpu[cpu] != NULL, ("[uncore,%d] null per-cpu %d", __LINE__, in ucp_config_pmc()
535 cpu)); in ucp_config_pmc()
537 uncore_pcpu[cpu]->pc_uncorepmcs[ri].phw_pmc = pm; in ucp_config_pmc()
543 ucp_describe(int cpu, int ri, struct pmc_info *pi, struct pmc **ppmc) in ucp_describe() argument
547 phw = &uncore_pcpu[cpu]->pc_uncorepmcs[ri]; in ucp_describe()
564 ucp_get_config(int cpu, int ri, struct pmc **ppm) in ucp_get_config() argument
566 *ppm = uncore_pcpu[cpu]->pc_uncorepmcs[ri].phw_pmc; in ucp_get_config()
572 ucp_read_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t *v) in ucp_read_pmc() argument
576 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_read_pmc()
577 ("[uncore,%d] illegal cpu value %d", __LINE__, cpu)); in ucp_read_pmc()
587 PMCDBG4(MDP,REA,1, "ucp-read cpu=%d ri=%d msr=0x%x -> v=%jx", cpu, ri, in ucp_read_pmc()
594 ucp_release_pmc(int cpu, int ri, struct pmc *pm) in ucp_release_pmc() argument
598 PMCDBG3(MDP,REL,1, "ucp-release cpu=%d ri=%d pm=%p", cpu, ri, in ucp_release_pmc()
601 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_release_pmc()
602 ("[uncore,%d] illegal CPU value %d", __LINE__, cpu)); in ucp_release_pmc()
606 KASSERT(uncore_pcpu[cpu]->pc_uncorepmcs[ri].phw_pmc in ucp_release_pmc()
613 ucp_start_pmc(int cpu, int ri, struct pmc *pm) in ucp_start_pmc() argument
618 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_start_pmc()
619 ("[uncore,%d] illegal CPU value %d", __LINE__, cpu)); in ucp_start_pmc()
623 cc = uncore_pcpu[cpu]; in ucp_start_pmc()
625 PMCDBG2(MDP,STA,1, "ucp-start cpu=%d ri=%d", cpu, ri); in ucp_start_pmc()
630 "ucp-start/2 cpu=%d ri=%d evselmsr=0x%x evsel=0x%x", in ucp_start_pmc()
631 cpu, ri, SELECTSEL(uncore_cputype) + ri, evsel); in ucp_start_pmc()
642 ucp_stop_pmc(int cpu, int ri, struct pmc *pm __unused) in ucp_stop_pmc() argument
645 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_stop_pmc()
646 ("[uncore,%d] illegal cpu value %d", __LINE__, cpu)); in ucp_stop_pmc()
650 PMCDBG2(MDP,STO,1, "ucp-stop cpu=%d ri=%d", cpu, ri); in ucp_stop_pmc()
661 ucp_write_pmc(int cpu, int ri, struct pmc *pm, pmc_value_t v) in ucp_write_pmc() argument
664 KASSERT(cpu >= 0 && cpu < pmc_cpu_max(), in ucp_write_pmc()
665 ("[uncore,%d] illegal cpu value %d", __LINE__, cpu)); in ucp_write_pmc()
669 PMCDBG4(MDP,WRI,1, "ucp-write cpu=%d ri=%d msr=0x%x v=%jx", cpu, ri, in ucp_write_pmc()
762 ("[uncore,%d] non-null pcpu cpu %d", __LINE__, i)); in pmc_uncore_finalize()