PMDAPAPI(1)                General Commands Manual               PMDAPAPI(1)

NAME         top

       pmdapapi - papi performance metrics domain agent (PMDA)

SYNOPSIS         top

       $PCP_PMDAS_DIR/pmdapapi [-d domain] [-l logfile]

DESCRIPTION         top

       pmdapapi is a papi Performance Metrics Domain Agent (PMDA) which
       exposes hardware performance counters via the library Performance API

       The metrics exported by the papi PMDA report values gathered from the
       hardware counters and metrics available, as reported by papi.
       Currently, only root users may access such metrics.

       A brief description of the pmdapapi command line options follows:

       -d   It is absolutely crucial that the performance metrics domain
            number specified here is unique and consistent.  That is, domain
            should be different for every PMDA on the one host, and the same
            domain number should be used for the same PMDA on all hosts.

       -l   Location of the log file.  By default, a log file named papi.log
            is written in the current directory of pmcd(1) when pmdapapi is
            started, i.e.  $PCP_LOG_DIR/pmcd.  If the log file cannot be
            created or is not writable, output is written to the standard
            error instead.

       Performance counters are activated automatically as they are fetched
       cyclically (such as via pmval(1) or pmlogger(1)).  This automatic
       activation is temporary, and lasts only a number of seconds governed
       by the papi.control.auto_enable control value (default 120).  In the
       case automatic activation is undesirable, one may disable it by
       setting the papi.control.auto_enable metric to 0.

       Alternately, the pmstore(1) command can be used to permanently enable
       tracking particular metrics, or stop them on demand.  Using the
       papi.control.enable and papi.control.disable metrics, one may set the
       metrics you wish to track using a space or comma separated list.
       Writing to the papi.control.reset metric disables all counters
       immediately.  This may be useful if the system performance counters
       are needed for another profiling task.

            # pmstore papi.control.enable "TOT_CYC TOT_INS"
            papi.control.enable old value="" new value="TOT_CYC TOT_INS"

            # pmval papi.system.TOT_CYC
            # pmval papi.system.TOT_INS
            # pmstore papi.control.disable "TOT_CYC,TOT_INS"
            papi.control.disable old value="" new value="TOT_CYC,TOT_INS"

       Fetching the papi.control.status metric provides an overview of all
       active counters.

       By default, PAPI multiplexing, which allows support for collecting
       more metrics than supported by the hardware concurrently, is enabled.
       One may modify the papi.control.multiplex metric to disable
       multiplexing by setting it to 0.

       Where possible, pmdapapi will expose available native perf and uncore
       events on the current hardware.  It is not possible to count some
       native metrics and preset metrics concurrently.

            # true -- automatically-enabled counters
            # pmval -s3 papi.system.perf.BRANCH.LOADS
            metric:    papi.system.perf.BRANCH.LOADS
            host:      HOSTNAME
            semantics: cumulative counter (converting to rate)
            units:     count (converting to count / sec)
            samples:   3
            interval:  1.00 sec

            # pmval -s3 papi.system.perf.BRANCH.MISSES
            metric:    papi.system.perf.BRANCH.MISSES
            host:      HOSTNAME
            semantics: cumulative counter (converting to rate)
            units:     count (converting to count / sec)
            samples:   3
            interval:  1.00 sec

            # true -- quick overview
            # pminfo -f papi.control.status
                value "Papi is running, has multiplexing enabled, perf.BRANCH.MISSES(114): 8960, perf.BRANCH.LOADS(110): 158400"

            # true -- optional instant disable
            # pmstore papi.control.disable "perf.BRANCH.LOADS,perf.BRANCH.MISSES"
            papi.control.disable old value="" new value="perf.BRANCH.LOADS,perf.BRANCH.MISSES"

INSTALLATION         top

       If you want access to the names, help text and values for the papi
       performance metrics, do the following as root:

            # cd $PCP_PMDAS_DIR/papi
            # ./Install

       If you want to undo the installation (and remove both PMDAs), do the
       following as root:

            # cd $PCP_PMDAS_DIR/papi
            # ./Remove

       pmdapapi is launched by pmcd(1) and should never be executed
       directly.  The Install and Remove scripts notify pmcd(1) when the
       agent is installed or removed.

FILES         top

                 command line options used to launch pmdapapi
                 default help text file for the papi metrics
                 installation script for the pmdapapi agent
                 undo installation script for the pmdapapi agent
                 default log file for error messages and other information
                 from pmdapapi


       Environment variables with the prefix PCP_ are used to parameterize
       the file and directory names used by PCP.  On each installation, the
       file /etc/pcp.conf contains the local values for these variables.
       The $PCP_CONF variable may be used to specify an alternative
       configuration file, as described in pcp.conf(5).

SEE ALSO         top

       PCPIntro(1), pmcd(1), pcp.conf(5) and pcp.env(5).

COLOPHON         top

       This page is part of the PCP (Performance Co-Pilot) project.
       Information about the project can be found at ⟨⟩.
       If you have a bug report for this manual page, send it to  This page was obtained from the project's upstream
       Git repository ⟨⟩ on
       2018-10-29.  (At that time, the date of the most recent commit that
       was found in the repository was 2018-10-28.)  If you discover any
       rendering problems in this HTML version of the page, or you believe
       there is a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to

Performance Co-Pilot                 PCP                         PMDAPAPI(1)