NAME
pmc_disable
,
pmc_enable
—
administrative control of hardware
performance counters
LIBRARY
library “libpmc”
SYNOPSIS
#include
<pmc.h>
int
pmc_disable
(int
cpu, int pmc);
int
pmc_enable
(int
cpu, int pmc);
DESCRIPTION
These functions allow specific hardware performance monitoring counters in a system to be disabled and enabled administratively. The hardware performance counters available on each CPU are numbered using small non-negative integers, in a system dependent manner. Disabled counters will not be available to applications for use.The invoking process needs to have the
PRIV_PMC_MANAGE
privilege to perform these
operations.
Function
pmc_disable
()
disables the hardware counter numbered by argument pmc
on CPU number cpu.
Function
pmc_enable
()
enables the hardware counter numbered by argument pmc
on CPU number cpu.
IMPLEMENTATION NOTES
Hardware PMCs that are currently in use by applications cannot be disabled. Allocation of a process scope software PMC marks all hardware PMCs in the system with the same pmc number as being in-use.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.
ERRORS
A call to these functions may fail with the following errors:
- [
EBUSY
] - Function
pmc_disable
() specified a hardware PMC is currently in use. - [
EINVAL
] - Arguments cpu or pmc were invalid.
- [
ENXIO
] - Argument cpu specified a disabled or absent CPU.
- [
EPERM
] - The current process lacks sufficient privilege to perform this operation.
SEE ALSO
pmc(3), pmc_cpuinfo(3), pmc_pmcinfo(3), hwpmc(4), pmccontrol(8), priv_check(9)