Skip to content

Require "default" component native events to require a PMU prefix #537

@Treece-Burgess

Description

@Treece-Burgess

Currently in the master branch, if papi_native_avail outputs the cuda native event:

cuda:::dram__bytes

Users could strip the component prefix cuda::: from the native event name and just use dram__bytes which still would result in the event being successfully added.

Per internal discussion this is considered a bug and PR #528 was created to address this behavior.

A unique case for this PR is the "default" component (CPU component aka perf_event) as it contains native events with PMU prefixes i.e. perf::CYCLES and native events that do not SHOW their PMU prefixes i.e. BACLEARS.

For the latter case, even though a PMU prefix does not show for BACLEARS one does exist for it. As an example, if you were on an Intel Skylake it has the PMU prefix skx::.

In reviewing PR 528, Vince had stated that if we forced even the default component to have a prefix it would make things like handling hybrid CPUs a lot easier.

Due to Vince's comment, requiring events that do have PMU prefixes that just simply aren't shown with the native event could be advantageous.

A few caveats to this are:

  1. Overhauling papi_events.csv as currently the native events used there do not have a PMU prefix.
  2. Many who use the perf_event component and have hard coded events in their application code would see their code break.

Metadata

Metadata

Labels

type-refactoringImproving internal code structure without changing functionality.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions