diff --git a/usr.sbin/pmccontrol/pmccontrol.c b/usr.sbin/pmccontrol/pmccontrol.c --- a/usr.sbin/pmccontrol/pmccontrol.c +++ b/usr.sbin/pmccontrol/pmccontrol.c @@ -282,14 +282,6 @@ return 0; } -#if defined(__i386__) || defined(__amd64__) -static int -pmcc_do_list_events(void) -{ - pmc_pmu_print_counters(NULL); - return (0); -} -#else static int pmcc_do_list_events(void) { @@ -298,6 +290,13 @@ const char **eventnamelist; const struct pmc_cpuinfo *ci; + /* First, try pmu events. */ + if (pmc_pmu_enabled()) { + pmc_pmu_print_counters(NULL); + return (0); + } + + /* Otherwise, use the legacy pmc(3) interfaces. */ if (pmc_cpuinfo(&ci) != 0) err(EX_OSERR, "Unable to determine CPU information"); @@ -319,7 +318,6 @@ } return 0; } -#endif static int pmcc_show_statistics(void)