Page MenuHomeFreeBSD

libpmc: add support for POWER8/9 PMCs
ClosedPublic

Authored by luporl on Aug 18 2020, 7:08 PM.

Details

Summary

This change adds support for POWER8/9 performance counters.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

luporl created this revision.

One thing we do have is the full power8/9 pmcs in src/lib/libpmc/pmu-events/arch. I think these just need to be hooked up

One thing we do have is the full power8/9 pmcs in src/lib/libpmc/pmu-events/arch. I think these just need to be hooked up

Right, yes, this helps a lot.
But taking a look on how these get hooked up on i386/amd64, it seems there is a reasonable amount of work to do:

  • libpmc_pmu_util.c needs to be ported to PPC64.
  • In hwpmc module, PPC64 allocate/release pmc methods need to be adapted to support PMC allocation with settings coming from libpmc. Also, register programming is a bit different for these events, compared to the basic ones of ISA 2.07.
  • Probably something else I'm missing.

So, it doesn't seem a whole lot of work, but I think it's enough to justify doing it a separate patch later.

luporl retitled this revision from libpmc: add support for PPCPNV PMCs to libpmc: add support for POWER8/9 PMCs.
luporl edited the summary of this revision. (Show Details)

Rename ppcpnv/powernv to power8.

The PowerNV naming could cause confusion, as these changes work with pseries/QEMU too.
POWER8 describes more correctly the support target being added, and POWER9 is fully backwards compatible with it.

This revision is now accepted and ready to land.Tue, Nov 3, 10:27 PM
This revision was automatically updated to reflect the committed changes.