'\"macro stdmacro .\" .\" Copyright (c) 2014-2015 Red Hat. .\" .\" This program is free software; you can redistribute it and/or modify it .\" under the terms of the GNU General Public License as published by the .\" Free Software Foundation; either version 2 of the License, or (at your .\" option) any later version. .\" .\" This program is distributed in the hope that it will be useful, but .\" WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY .\" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License .\" for more details. .\" .\" .ds ia papi .ds IA PAPI .ds Ia Papi .TH PMDAPAPI 1 "PCP" "Performance Co-Pilot" .SH NAME \f3pmdapapi\f1 \- \*(ia performance metrics domain agent (PMDA) .SH SYNOPSIS \f3$PCP_PMDAS_DIR/pmda\*(ia\f1 [\f3\-d\f1 \f2domain\f1] [\f3\-l\f1 \f2logfile\f1] .SH DESCRIPTION .B pmda\*(ia is a \*(ia Performance Metrics Domain Agent (PMDA) which exposes hardware performance counters via the library Performance API (PAPI). .PP The metrics exported by the \*(ia PMDA report values gathered from the hardware counters and metrics available, as reported by \*(ia. Currently, only root users may access such metrics. .PP A brief description of the .B pmda\*(ia command line options follows: .TP 5 .B \-d It is absolutely crucial that the performance metrics .I domain number specified here is unique and consistent. That is, .I domain should be different for every PMDA on the one host, and the same .I domain number should be used for the same PMDA on all hosts. .TP .B \-l Location of the log file. By default, a log file named .I \*(ia.log is written in the current directory of .BR pmcd (1) when .B pmda\*(ia is started, i.e. .BR $PCP_LOG_DIR/pmcd . If the log file cannot be created or is not writable, output is written to the standard error instead. .P Performance counters are activated automatically as they are fetched cyclically (such as via .BR pmval (1) or .BR pmlogger (1)). This automatic activation is temporary, and lasts only a number of seconds governed by the .B papi.control.auto_enable control value (default 120). In the case automatic activation is undesirable, one may disable it by setting the .B papi.control.auto_enable metric to 0. .P Alternately, the .BR pmstore (1) command can be used to permanently enable tracking particular metrics, or stop them on demand. Using the .B papi.control.enable and .B papi.control.disable metrics, one may set the metrics you wish to track using a space or comma separated list. Writing to the .B papi.control.reset metric disables all counters immediately. This may be useful if the system performance counters are needed for another profiling task. .P .ft CW .nf .in +0.5i # pmstore papi.control.enable "TOT_CYC TOT_INS" papi.control.enable old value="" new value="TOT_CYC TOT_INS" # pmval papi.system.TOT_CYC 8.371E+04 # pmval papi.system.TOT_INS 2.712E+04 # pmstore papi.control.disable "TOT_CYC,TOT_INS" papi.control.disable old value="" new value="TOT_CYC,TOT_INS" .in .fi .P Fetching the .BR papi.control.status metric provides an overview of all active counters. .P By default, PAPI multiplexing, which allows support for collecting more metrics than supported by the hardware concurrently, is enabled. One may modify the .B papi.control.multiplex metric to disable multiplexing by setting it to 0. .P Where possible, .B pmda\*(ia 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. .P .ft CW .nf .in +0.5i # 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 7530. 7539. 7543. # 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 696.8 590.8 651.8 # true -- quick overview # pminfo -f papi.control.status 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" .PP .SH INSTALLATION If you want access to the names, help text and values for the \*(ia performance metrics, do the following as root: .PP .ft CW .nf .in +0.5i # cd $PCP_PMDAS_DIR/\*(ia # ./Install .in .fi .ft 1 .PP If you want to undo the installation (and remove both PMDAs), do the following as root: .PP .ft CW .nf .in +0.5i # cd $PCP_PMDAS_DIR/\*(ia # ./Remove .in .fi .ft 1 .PP .B pmda\*(ia is launched by .BR pmcd (1) and should never be executed directly. The Install and Remove scripts notify .BR pmcd (1) when the agent is installed or removed. .SH FILES .PD 0 .TP 10 .B $PCP_PMCDCONF_PATH command line options used to launch .B pmda\*(ia .TP 10 .B $PCP_PMDAS_DIR/\*(ia/help default help text file for the \*(ia metrics .TP 10 .B $PCP_PMDAS_DIR/\*(ia/Install installation script for the .B pmda\*(ia agent .TP 10 .B $PCP_PMDAS_DIR/\*(ia/Remove undo installation script for the .B pmda\*(ia agent .TP 10 .B $PCP_LOG_DIR/pmcd/sample.log default log file for error messages and other information from .B pmda\*(ia .PD .SH "PCP ENVIRONMENT" Environment variables with the prefix .B PCP_ are used to parameterize the file and directory names used by PCP. On each installation, the file .B /etc/pcp.conf contains the local values for these variables. The .B $PCP_CONF variable may be used to specify an alternative configuration file, as described in .BR pcp.conf (5). .SH SEE ALSO .BR PCPIntro (1), .BR pmcd (1), .BR pcp.conf (5) and .BR pcp.env (5).