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

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
rGda13ef6aa056: libpmc: remove PMC_MDEP_TABLE logic
Branches
Unknown
Tags
Unknown