HomeFreeBSD

libpmc: fall-back to kernel tables if pmu-events fails

Description

libpmc: fall-back to kernel tables if pmu-events fails

On x86, the pmu_events table is the source of truth for finding
supported events. However, events not found there may still be present
in the kernel's static event tables. For example, the pmc.soft(3) events
will never be available from pmu-events.

Update pmc_allocate() to search the legacy event tables if
pmc_pmu_pmcallocate() fails to return a result. This allows both event
sources to be consulted before giving up, thus restoring pmc.soft(3) and
pmc.tsc(3) on x86.

Reviewed by: emaste
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30216

(cherry picked from commit dfdc57e8aa8ba4b4e4484f736e8c7645ab69b54a)

Details

Provenance
mhorneAuthored on May 13 2021, 6:57 PM
Reviewer
emaste
Differential Revision
D30216: libpmc: fall-back to kernel tables if pmu-events fails
Parents
rG57caeb5109ee: libpmc: remove PMC_MDEP_TABLE logic
Branches
Unknown
Tags
Unknown