aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Horne <mhorne@FreeBSD.org>2021-05-31 14:14:36 +0000
committerMitchell Horne <mhorne@FreeBSD.org>2021-07-29 15:01:10 +0000
commit6b2ccad297459910f14ee7bdbbd517aacc64dafe (patch)
tree9b6c7c40bfc976734237f85b02524aea37d9bc4b
parentb040b03d32c3deee6cfaf68e490558554cefb180 (diff)
downloadsrc-6b2ccad297459910f14ee7bdbbd517aacc64dafe.tar.gz
src-6b2ccad297459910f14ee7bdbbd517aacc64dafe.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 (cherry picked from commit 167cdaa7e30093215a753d4f788d921b1f7c1474)
-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)