---
name: "kgmon"
section: "8"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["openbsd"]
url: "https://new.carta.tech/kgmon"
---

# kgmon(8)

generate a dump of the operating system's profile buffers

## NAME

**kgmon** – generate a dump of the operating system's profile buffers

## SYNOPSIS

**kgmon** \[**-bhpr**\] \[**-c** *cpuid*\] \[**-M** *core*\] \[**-N** *system*\]

## DESCRIPTION

**kgmon** is a tool used when profiling the operating system. When no arguments are supplied, **kgmon** indicates the state of per-CPU operating system profilings as “running”, “off”, or “not configured” (see [config(8)](/config/8.md)). If the **-p** flag is specified, **kgmon** extracts profile data from the operating system and produces a file for each CPU suitable for later analysis by [gprof(1)](/gprof/1.md).

The options are as follows:

- **-b**

  Resume the collection of profile data.

- **-c** *cpuid*

  Operate on the CPU specified by *cpuid*, instead of all of them.

- **-h**

  Stop the collection of profile data.

- **-M** *core*

  Extract values associated with the name list from the specified *core* instead of the default */dev/kmem*.

- **-N** *system*

  Extract the name list from the specified *system* instead of the default */bsd*.

- **-p**

  Dump the contents of the profile buffers into a *gmon-\<id\>.out* file, where “id” is the ID of the CPU.

- **-r**

  Reset all the profile buffers. If the **-p** flag is also specified, the profile files are generated before the buffers are reset.

If neither **-b** nor **-h** is specified, the state of profiling collection remains unchanged. For example, if the **-p** flag is specified and profile data is being collected, profiling will be momentarily suspended, the operating system profile buffers will be dumped, and profiling will be immediately resumed.

**kgmon** requires the ability to open */dev/kmem* which may be restricted based upon the value of the *kern.allowkmem* [sysctl(8)](/sysctl/8.md).

## FILES

- */bsd*

  default system

- */dev/kmem*

  default memory

## DIAGNOSTICS

Users with only read permission on */dev/kmem* cannot change the state of profiling collection. They can get profile files with the warning that the data may be inconsistent if profiling is in progress.

## SEE ALSO

[gprof(1)](/gprof/1.md), [config(8)](/config/8.md)

## HISTORY

The **kgmon** command appeared in 4.2BSD.
