Thu, Mar 12
You are correct, thank you for the observation. pmcstat does not exercise amd_get_msr() directly. The correct test path is via pmc_x86_get_msr() from libpmc, which issues a PMC_OP_GETMSR ioctl into the kernel amd_get_msr() code path.
Hardware validation was performed on AMD Ryzen 5 5600X (Family 19h, Zen 3), FreeBSD 16.0-CURRENT (hwpmc-amd-work-n284229-d18be873e2c2):
Wed, Mar 11
The change seems correct to me, but the test plan does not; pmcstat does not make any use of the pmc_get_msr() code path. Perhaps you have some other use-case or test program that you used?
Tue, Mar 10
Wed, Mar 4
Feb 24 2025
Jun 26 2022
Jan 27 2022
Dec 19 2021
Nov 4 2021
@ray I assume you can go ahead with committing this one?
Oct 27 2021
It seems to me that only the changes to pmc_arm64_initialize() should be necessary, because it handles optional classes in the same way that pmc_intel_initialize() does, by passing the correct nclasses value to pmc_mdep_alloc().
Oct 26 2021
Update classes base ri to handle optional classes out of order.
Oct 6 2021
Oct 5 2021
Aug 5 2021
May 26 2021
May 5 2021
Comment update LGTM
Squash commits.
Fix comment.
This looks fine to me, thanks for fixing this.
May 3 2021
Apr 30 2021
Jun 13 2017
May 25 2017
Jan 27 2016
May 13 2015
This was submitted as r282866.
May 12 2015
Ok. I think the longer term fix is to update the MAP_IN message to include the relative offset of the mapping to the backing object, then it wouldn't have to parse the header to see what offset of the file is mapped.
Example running unixbench:
With this change pmcstat(8) still does not resolve symbols for some applications, but at least they show up in pmcstat -T and in the callgraph (before that pmcstat would mark their frames as "dubious").
