---
name: "pmdakvm"
section: "1"
platform: "linux"
package: "pcp"
version: "7.2.2-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pmdakvm"
---

# pmdakvm(1)

Linux virtualization performance metrics domain agent (PMDA)

## NAME

**pmdakvm** - Linux virtualization performance metrics domain agent (PMDA)

## SYNOPSIS

**$PCP\_PMDAS\_DIR/kvm/pmdakvm** \[**-D** *debug*\]

## DESCRIPTION

**pmdakvm** is a Performance Metrics Domain Agent (PMDA) which exports metric values from the Linux KVM (Kernel Virtual Machine) virtualization subsystem.

Per-processor KVM trace metrics from the kernel events enumerated below */sys/kernel/debug/tracing/events/kvm* can be configured statically using the **pmdakvm** configuration file, */etc/pcp/kvm/kvm.conf*.

## INSTALLATION

Optionally configure trace points in the configuration file, then install the KVM PMDA by using the Install script as root:

```
# cd $PCP_PMDAS_DIR/kvm
# ./Install
```

To uninstall, do the following as root:

```
# cd $PCP_PMDAS_DIR/kvm
# ./Remove
```

**pmdakvm** is launched by [*pmcd*(1)](/pmcd/1.md) and should never be executed directly. The Install and Remove scripts notify [*pmcd*(1)](/pmcd/1.md) when the agent is installed or removed.

## CAVEATS

When **pmdakvm** is running, it holds references to kernel resources within the KVM device driver. It is thus not possible to unload or reload the device driver module while the PMDA is running. The ideal procedure to follow in order to reload the kernel module is the reverse of that described in the \`\`INSTALLATION'' section above - i.e. first run **./Remove**, then reload the kernel module, then run **./Install**.

## FILES

- **$PCP\_SYSCONF\_DIR/kvm/kvm.conf**

  configuration file for the **pmdakvm** agent

- **$PCP\_PMDAS\_DIR/kvm/Install**

  installation script for the **pmdakvm** agent

- **$PCP\_PMDAS\_DIR/kvm/Remove**

  undo installation script for the **pmdakvm** agent

- **$PCP\_LOG\_DIR/pmcd/kvm.log**

  default log file for error messages from **pmdakvm**

## PCP ENVIRONMENT

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)](/pcp.conf/5.md).

## DEBUGGING OPTIONS

The **-D** or **--debug** option enables the output of additional diagnostics on *stderr* to help triage problems, although the information is sometimes cryptic and primarily intended to provide guidance for developers rather than for end-users. *debug* is a comma separated list of debugging options; use [**pmdbg**(1)](/pmdbg/1.md) with the **-l** option to obtain a list of the available debugging options and their meaning.

## SEE ALSO

[**PCPIntro**(1)](/PCPIntro/1.md), [**pmcd**(1)](/pmcd/1.md) and [**kvm**(1)](/kvm/1.md).
