diff options
| author | Andre Silva <andasilv@amd.com> | 2026-10-02 13:55:26 +0000 |
|---|---|---|
| committer | Mitchell Horne <mhorne@FreeBSD.org> | 2026-10-02 13:55:41 +0000 |
| commit | 4b267d4e4f6a6cd7bd08b9c4854fcb26fab8c18c (patch) | |
| tree | 98b88a0667be0299b0ac4173e95cedeb98b1157d /sys/dev/ismt/(public-mirror) | |
| parent | c97cea955f90ceea1024716d335a39215688f324 (diff) | |
Since 9d3064010590, pmc_process_exit() calls pmc_process_csw_stop_all()
first. That clears pps_cpustate for every virtual PMC on the CPU, so the
exit loop then skips the stop and the final read.
On AMD PerfMonV2 this has two effects:
- The count from the last time slice is lost. A process that never
switches out before exit reports 0 with pmcstat -p.
- The EVSEL enable bit stays set. After kldunload, the next kldload
sees it and says "PMCs maybe in use by firmware!".
It is not required that pmc_process_csw_stop_all() should touch the
ppc_cpustate field at all; remove this to fix the issues.
Reviewed by: mhorne
Fixes: 9d3064010590 ("hwpmc_amd: add PerfMonV2 global-control path")
Sponsored by: AMD
Differential Revision: https://reviews.freebsd.org/D60141
Diffstat (limited to 'sys/dev/ismt/(public-mirror)')
0 files changed, 0 insertions, 0 deletions
