---
name: "pmccontrol"
section: "8"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["freebsd"]
url: "https://new.carta.tech/pmccontrol"
---

# pmccontrol(8)

control hardware performance monitoring counters

## NAME

**pmccontrol** – control hardware performance monitoring counters

## SYNOPSIS

**pmccontrol** \[**-c** *cpu* \| **-d** *pmc* \| **-e** *pmc*\] ...

**pmccontrol** **-l**

**pmccontrol** **-L**

**pmccontrol** **-s**

## DESCRIPTION

The **pmccontrol** utility controls the operation of the system's hardware performance monitoring counters.

## OPTIONS

The **pmccontrol** utility processes options in command line order, so later options modify the effect of earlier ones. The following options are available:

- **-c** *cpu*

  Subsequent enable and disable options affect the CPU denoted by argument *cpu*. The argument *cpu* is a number denoting a CPU in the system, or “\*”, denoting all unhalted CPUs in the system.

- **-d** *pmc*

  Disable PMC number *pmc* on the CPU specified by **-c**, preventing it from being used till subsequently re-enabled. The argument *pmc* is a number denoting a specific PMC, or “\*” denoting all the PMCs on the specified CPU.

  Only idle PMCs may be disabled.

- **-e** *pmc*

  Enable PMC number *pmc*, on the CPU specified by **-c**, allowing it to be used in the future. The argument *pmc* is a number denoting a specific PMC, or “\*” denoting all the PMCs on the specified CPU. If PMC *pmc* is already enabled, this option has no effect.

- **-l**

  List available hardware performance counters and their current disposition.

- **-L**

  List available hardware performance counter classes and their supported event names.

- **-s**

  Print driver statistics maintained by [hwpmc(4)](/hwpmc/4.md).

## EXAMPLES

To disable all PMCs on all CPUs, use the command:

```
pmccontrol -d*
```

To enable all PMCs on all CPUs, use:

```
pmccontrol -e*
```

To disable PMCs 0 and 1 on CPU 2, use:

```
pmccontrol -c2 -d0 -d1
```

To disable PMC 0 of CPU 0 only, and enable all other PMCS on all other CPUs, use:

```
pmccontrol -c* -e* -c0 -d0
```

## DIAGNOSTICS

The **pmccontrol** utility exits 0 on success, and \>0 if an error occurs.

## SEE ALSO

[pmc(3)](/pmc/3.md), [pmclog(3)](/pmclog/3.md), [hwpmc(4)](/hwpmc/4.md), [pmcstat(8)](/pmcstat/8.md), [sysctl(8)](/sysctl/8.md)

## HISTORY

The **pmccontrol** utility first appeared in FreeBSD 6.0.

## AUTHORS

Joseph Koshy ⟨*jkoshy@FreeBSD.org*⟩
