aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2021-05-31 14:14:36 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2021-05-31 20:39:05 +0000
commit167cdaa7e30093215a753d4f788d921b1f7c1474 (patch)
treec2e531863c0f709730c9754fc550373aa4971c42
parent0092642f863946ee1edc88fa634887d7c8a54656 (diff)
downloadsrc-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.c16
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)