Lines Matching +full:cpu +full:- +full:map

1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
56 #define PMCC_CPU_ALL -1
59 #define PMCC_PMC_ALL -1
90 " " PMCC_PROGRAM_NAME " -L\n"
91 " " PMCC_PROGRAM_NAME " -l\n"
92 " " PMCC_PROGRAM_NAME " -s\n"
93 " " PMCC_PROGRAM_NAME " [-e pmc | -d pmc | -c cpu] ...";
129 unsigned char *map; in pmcc_do_enable_disable() local
131 int cpu, pmc; in pmcc_do_enable_disable() local
136 /* Determine the maximum number of PMCs in any CPU. */ in pmcc_do_enable_disable()
141 "Unable to determine the number of PMCs in CPU %d", in pmcc_do_enable_disable()
149 if ((map = calloc(npmc, ncpu)) == NULL) in pmcc_do_enable_disable()
155 cpu = np->op_cpu; in pmcc_do_enable_disable()
156 pmc = np->op_pmc; in pmcc_do_enable_disable()
157 op = np->op_op; in pmcc_do_enable_disable()
159 if (cpu >= ncpu) in pmcc_do_enable_disable()
160 errx(EX_DATAERR, "CPU id too large: \"%d\"", cpu); in pmcc_do_enable_disable()
172 MARKMAP(map, (C), j, (V)); \ in pmcc_do_enable_disable()
174 MARKMAP(map, (C), (P), (V)); \ in pmcc_do_enable_disable()
177 #define MAP(M,C,P) (*((M) + (C)*npmc + (P))) in pmcc_do_enable_disable() macro
179 if (cpu == PMCC_CPU_ALL) in pmcc_do_enable_disable()
184 SET_PMCS(cpu, pmc, op); in pmcc_do_enable_disable()
192 b = MAP(map, i, j); in pmcc_do_enable_disable()
202 err(EX_OSERR, "%s of PMC %d on CPU %d failed", in pmcc_do_enable_disable()
216 int c, cpu, n, npmc, ncpu; in pmcc_do_list_state() local
222 err(EX_OSERR, "Unable to determine CPU information"); in pmcc_do_list_state()
224 printf("%d %s CPUs present, with %d PMCs per CPU\n", pc->pm_ncpu, in pmcc_do_list_state()
225 pmc_name_of_cputype(pc->pm_cputype), in pmcc_do_list_state()
226 pc->pm_npmc); in pmcc_do_list_state()
230 if (cpusetsize == -1 || (u_long)cpusetsize > sizeof(cpuset_t)) in pmcc_do_list_state()
238 ncpu = pc->pm_ncpu; in pmcc_do_list_state()
240 for (c = cpu = 0; cpu < ncpu; cpu++) { in pmcc_do_list_state()
241 if (pmc_pmcinfo(cpu, &pi) < 0) { in pmcc_do_list_state()
244 err(EX_OSERR, "Unable to get PMC status for CPU %d", in pmcc_do_list_state()
245 cpu); in pmcc_do_list_state()
248 printf("#CPU %d:\n", c++); in pmcc_do_list_state()
249 npmc = pmc_npmc(cpu); in pmcc_do_list_state()
250 printf("#N NAME CLASS STATE ROW-DISP\n"); in pmcc_do_list_state()
253 pd = &pi->pm_pmcs[n]; in pmcc_do_list_state()
255 printf(" %-2d %-16s %-6s %-8s %-10s", in pmcc_do_list_state()
257 pd->pm_name, in pmcc_do_list_state()
258 pmc_name_of_class(pd->pm_class), in pmcc_do_list_state()
259 pd->pm_enabled ? "ENABLED" : "DISABLED", in pmcc_do_list_state()
260 pmc_name_of_disposition(pd->pm_rowdisp)); in pmcc_do_list_state()
262 if (pd->pm_ownerpid != -1) { in pmcc_do_list_state()
263 printf(" (pid %d)", pd->pm_ownerpid); in pmcc_do_list_state()
264 printf(" %-32s", in pmcc_do_list_state()
265 pmc_name_of_event(pd->pm_event)); in pmcc_do_list_state()
266 if (PMC_IS_SAMPLING_MODE(pd->pm_mode)) in pmcc_do_list_state()
268 pd->pm_reloadcount); in pmcc_do_list_state()
293 err(EX_OSERR, "Unable to determine CPU information"); in pmcc_do_list_events()
297 for (i = 0; i < ci->pm_nclass; i++) { in pmcc_do_list_events()
298 c = ci->pm_classes[i].pm_class; in pmcc_do_list_events()
327 #define PRINT(N,V) (void) printf("%-40s %d\n", (N), gms.pm_##V) in pmcc_show_statistics()
329 PRINT("non-PMC interrupts:", intr_ignored); in pmcc_show_statistics()
363 while ((option = getopt(argc, argv, ":c:d:e:lLs")) != -1) in main()
387 "\"%s\" is not a valid CPU id", in main()
414 p->op_cpu = currentcpu; in main()
415 p->op_pmc = pmc; in main()
416 p->op_op = option == 'd' ? PMCC_OP_DISABLE : in main()
440 "Missing argument to option '-%c'", optopt); in main()
444 warnx("Unrecognized option \"-%c\"", optopt); in main()