diff options
author | Mitchell Horne <mhorne@FreeBSD.org> | 2021-05-31 14:14:36 +0000 |
---|---|---|
committer | Mitchell Horne <mhorne@FreeBSD.org> | 2021-05-31 20:39:05 +0000 |
commit | 167cdaa7e30093215a753d4f788d921b1f7c1474 (patch) | |
tree | c2e531863c0f709730c9754fc550373aa4971c42 | |
parent | 0092642f863946ee1edc88fa634887d7c8a54656 (diff) | |
download | src-167cdaa7e30093215a753d4f788d921b1f7c1474.tar.gz src-167cdaa7e30093215a753d4f788d921b1f7c1474.zip |
pmccontrol: improve -L with pmu-events
Check if the pmu utils are supported rather than carrying a
machine-dependent #ifdef.
Reviewed by: gnn, ray, emaste
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30526
-rw-r--r-- | usr.sbin/pmccontrol/pmccontrol.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/usr.sbin/pmccontrol/pmccontrol.c b/usr.sbin/pmccontrol/pmccontrol.c index 147aab2d2ba1..9d57a2923784 100644 --- a/usr.sbin/pmccontrol/pmccontrol.c +++ b/usr.sbin/pmccontrol/pmccontrol.c @@ -282,14 +282,6 @@ pmcc_do_list_state(void) 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 @@ pmcc_do_list_events(void) 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 @@ pmcc_do_list_events(void) } return 0; } -#endif static int pmcc_show_statistics(void) |