pmctools:pmcrelatedwork

Related Work

Links to reported research and other open-source projects using CPU PMCs:

Under Linux there are three projects that use in-CPU performance counters for performance measurements:

  • Perfctr
    A driver for Linux kernels that provides per-process “virtual” hardware performance counters. It is distributed in the form of a source patch.
  • Oprofile
    A Linux kernel driver that does “whole system” profiling using hardware performance counters. Oprofile does not support using PMCs for simple counting or for process-specific sampling. It is however present in most Linux-based distributions.
  • Perfmon2
    Perfmon2 is the Linux kernel profiling & performance measurement framework that comes the closest to PmcTools in terms of features. It supports process-mode and system-wide modes of operation and can do profiling as well as counting. Perfmon2 has support for callgraphs (which hwpmc(4) doesn't do yet), but does not do remote profiling. It also doesn't appear to do cross-architecture profiles.
    Perfmon2 is distributed in the form of a patch.

There is also an additional older project: Rabbit, from the AMES Lab.

NetBSD's implementation of a PMC API: NetBSD/pmc(3):

http://www.daemon-systems.org/man/pmc.9.html (This link is broken). Possible link from archive.org: https://web.archive.org/web/20180218094454/https://www.daemon-systems.org/man/pmc.9.html

Solaris™ has a CDC(3EXT) API for accessing CPU performance counters. It supports the CPUs that Solaris™ runs on.

These tools use build over the lower layers and provide visualization and easy to use interfaces:

  • pmctools/pmcrelatedwork.txt
  • Last modified: 2020/10/29 04:18
  • by SashaVigole