Page MenuHomeFreeBSD

libpmc: add support for POWER8/9 PMCs
ClosedPublic

Authored by luporl on Aug 18 2020, 7:08 PM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Nov 18, 1:30 PM
Unknown Object (File)
Thu, Nov 7, 4:05 PM
Unknown Object (File)
Thu, Nov 7, 2:41 PM
Unknown Object (File)
Thu, Nov 7, 1:12 PM
Unknown Object (File)
Fri, Nov 1, 8:02 PM
Unknown Object (File)
Fri, Nov 1, 8:02 PM
Unknown Object (File)
Fri, Nov 1, 8:01 PM
Unknown Object (File)
Fri, Nov 1, 8:01 PM
Subscribers

Details

Summary

This change adds support for POWER8/9 performance counters.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
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.Nov 3 2020, 10:27 PM
This revision was automatically updated to reflect the committed changes.