GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
PMC_CAPABILITIES(3) FreeBSD Library Functions Manual PMC_CAPABILITIES(3)

pmc_capabilities, pmc_cpuinfo, pmc_ncpu, pmc_npmc, pmc_pmcinfo, pmc_width
retrieve information about performance monitoring counters

Performance Counters Library (libpmc, -lpmc)

#include <pmc.h>

int
pmc_capabilities(pmc_id_t pmc, uint32_t *caps);

int
pmc_cpuinfo(const struct pmc_cpuinfo **cpu_info);

int
pmc_ncpu(void);

int
pmc_npmc(int cpu);

int
pmc_pmcinfo(int cpu, struct pmc_pmcinfo **pmc_info);

int
pmc_width(pmc_id_t pmc, uint32_t *width);

These functions retrieve information about performance monitoring hardware.

Function pmc_capabilities() retrieves the hardware capabilities of a PMC. Argument pmc is a PMC handle obtained by a prior call to pmc_allocate(). The function sets argument caps to a bit mask of capabilities supported by the PMC denoted by argument pmc. PMC capabilities are described in pmc(3).

Function pmc_cpuinfo() retrieves information about the CPUs in the system. Argument cpu_info will be set to point to an internal structure with information about the system's CPUs. The caller should not free this pointer value. This structure has the following fields:

pm_cputype
Specifies the CPU type.
pm_ncpu
Specifies the number of CPUs in the system.
pm_npmc
Specifies the number of PMC rows per CPU.
pm_nclass
Specifies the number of distinct classes of PMCs in the system.
pm_classes
Contains an array of struct pmc_classinfo descriptors describing the properties of each class of PMCs in the system.

Function pmc_ncpu() is a convenience function that returns the maximum CPU number in the system. On systems that support sparsely numbered CPUs, not all CPUs may be physically present. Applications need to be prepared to deal with nonexistent CPUs.

Function pmc_npmc() is a convenience function that returns the number of PMCs available in the CPU specified by argument cpu.

Function pmc_pmcinfo() returns information about the current state of the PMC hardware in the CPU specified by argument cpu. The location specified by argument pmc_info is set to point an array of struct pmc_info structures each describing the state of one PMC in the CPU. These structure contain the following fields:

pm_name
A human readable name for the PMC.
pm_class
The PMC class for the PMC.
pm_enabled
Non-zero if the PMC is enabled.
pm_rowdisp
The disposition of the PMC row for this PMC. Row dispositions are documented in hwpmc(4).
pm_ownerpid
If the hardware is in use, the process id of the owner of the PMC.
pm_mode
The PMC mode as described in pmc(3).
pm_event
If the hardware is in use, the PMC event being measured.
pm_flags
If the hardware is in use, the flags associated with the PMC.
pm_reloadcount
For sampling PMCs, the reload count associated with the PMC.

Function pmc_width() is used to retrieve the width in bits of the hardware counters associated with a PMC. Argument pmc is a PMC handle obtained by a prior call to pmc_allocate(). The function sets the location pointed to by argument width to the width of the physical counters associated with PMC pmc.

Functions pmc_ncpu() and pmc_npmc() returns a positive integer if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

Functions pmc_capabilities(), pmc_cpuinfo(), pmc_pmcinfo() and pmc_width() return 0 if successful; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

A call to function pmc_capabilities() may fail with the following errors:
[]
The argument to the function was invalid.

Calls to functions pmc_cpuinfo(), pmc_ncpu() and pmc_npmc() may fail with the following errors:

[]
A prior call to pmc_init() to initialize the PMC library had failed.

A call to function pmc_pmcinfo() may fail with the following errors:

[]
The argument cpu was invalid.
[]
The argument cpu specified a disabled or absent CPU.

A call to function pmc_width() may fail with the following errors:

[]
The argument to the function was invalid.

pmc(3), pmc_allocate(3), pmc_get_driver_stats(3), pmc_name_of_capability(3), pmc_name_of_class(3), pmc_name_of_cputype(3), pmc_name_of_event(3), pmc_name_of_mode(3), hwpmc(4)
September 22, 2008 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.