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

# pmDelProfile(3)

delete instance(s) from the current PMAPI instance profile

## NAME

**pmDelProfile** - delete instance(s) from the current PMAPI instance profile

## C SYNOPSIS

**#include \<pcp/pmapi.h\>**

**int pmDelProfile(pmInDom** *indom***, int** *numinst***, int \****instlist***);**

**cc ... -lpcp**

## DESCRIPTION

The set of instances for performance metrics returned from a [**pmFetch**(3)](/pmFetch/3.md) call may be filtered or restricted using an instance profile. There is one instance profile for each context the application creates at the Performance Metrics Application Programming Interface (PMAPI), and each instance profile may include instances from one or more instance domains (see [**pmLookupDesc**(3)](/pmLookupDesc/3.md)).

**pmDelProfile** may be used to delete instance specifications from the instance profile of the current PMAPI context.

In the simplest variant, the list of instances identified by the *instlist* argument for the *indom* instance domain are removed from the instance profile. The list of instance identifiers contains *numinst* values.

The *indom* value would normally be extracted from a call to [**pmLookupDesc**(3)](/pmLookupDesc/3.md) for a particular performance metric, and the instances in *instlist* would typically be determined by calls to [**pmGetInDom**(3)](/pmGetInDom/3.md) or [**pmLookupInDom**(3)](/pmLookupInDom/3.md).

If *indom* equals **PM\_INDOM\_NULL** and *numinst* is zero, then all instance domains are selected for deletion.  If *instlist* is *NULL*, then all instances in the selected domain(s) are removed from the profile.

To disable all available instances in all domains, use *pmDelProfile(PM\_INDOM\_NULL, 0, NULL)*. This is the only situation in which *indom* may be **PM\_INDOM\_NULL**.

## CAVEAT

It is possible to delete non-existent instance domains and non-existent instances from an instance profile.  None of the routines that use the instance profile will ever issue an error if you do this.  The cost of checking, when checking is possible, outweighs any benefits.

## DIAGNOSTICS

- **PM\_ERR\_PROFILESPEC**

  *indom* was **PM\_INDOM\_NULL** and *instlist* was not empty

## SEE ALSO

[**pmAddProfile**(3)](/pmAddProfile/3.md), [**PMAPI**(3)](/PMAPI/3.md), [**pmFetch**(3)](/pmFetch/3.md), [**pmGetInDom**(3)](/pmGetInDom/3.md), [**pmLookupDesc**(3)](/pmLookupDesc/3.md), [**pmLookupInDom**(3)](/pmLookupInDom/3.md), [**pmNewContext**(3)](/pmNewContext/3.md), [**pmUseContext**(3)](/pmUseContext/3.md) and [**pmWhichContext**(3)](/pmWhichContext/3.md).
