Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

CentOS 5.4

perfmonctl(2)


PERFMONCTL

PERFMONCTL

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
AVAILABILITY
SEE ALSO

NAME

perfmonctl − interface to PMU

SYNOPSIS

#include <syscall.h>
#include <perfmon.h>

long perfmonctl(int fd, int cmd, void *arg, int narg);

DESCRIPTION

perfmonctl system call provides an interface to PMU (performance monitoring unit). PMU consists of PMD (performance monitoring data) registers and PMC (performance monitoring control) registers, where are gathered the hardware statistic.

perfmonctl will apply a function cmd to input arguments arg. The number of arguments is defined by input variable narg. fd specifies the perfmon context to operate on.

The implemented commands cmd are:

PFM_CREATE_CONTEXT

set up a context
perfmonctl(int
fd, PFM_CREATE_CONTEXT , pfarg_context_t *ctxt, 1);

The fd parameter is ignored. A new context is created as specified in ctxt and its file descriptor is returned in ctxt->ctx_fd.

The file descriptor, apart from passing it to perfmonctl, can be used to read event notifications (type pfm_msg_t) using the read(2) system call. Both select(2) and poll(2) can be used to wait for event notifications.

The context can be destroyed using the close(2) system call.

PFM_WRITE_PMCS

set PMC registers
perfmonctl(int
fd, PFM_WRITE_PMCS , pfarg_pmc_t *pmcs, n);

PFM_WRITE_PMDS

set PMD registers
perfmonctl(int
fd, PFM_WRITE_PMDS , pfarg_pmd_t *pmds, n);

PFM_READ_PMDS

read PMD registers
perfmonctl(int
fd, PFM_READ_PMDS , pfarg_pmd_t *pmds, n);

PFM_START

start monitoring
perfmonctl(int
fd, PFM_START , arg , 1);
perfmonctl(int
fd, PFM_START , NULL , 0);

PFM_STOP

stop monitoring
perfmonctl(int
fd, PFM_START , NULL , 0);

PFM_LOAD_CONTEXT

attach the context to a thread
perfmonctl(int
fd, PFM_LOAD_CONTEXT ,pfarg_load_t *largs,1);

PFM_UNLOAD_CONTEXT

detach the context from a thread
perfmonctl(int
fd, PFM_UNLOAD_CONTEXT , NULL , 0);

PFM_RESTART

restart monitoring after recieving an overflow notification
perfmonctl(int
fd, PFM_RESTART , NULL , 0);

PFM_CREATE_EVTSETS

create or modify event sets
perfmonctl(int
fd, PFM_CREATE_EVTSETS, pfarg_setdesc_t *desc , n);

PFM_DELETE_EVTSETS

delete event sets
perfmonctl(int
fd, PFM_DELETE_EVTSET, pfarg_setdesc_t *desc , n);

PFM_GETINFO_EVTSETS

get information about event sets
perfmonctl(int
fd, PFM_GETINFO_EVTSETS, pfarg_setinfo_t *info, n);

RETURN VALUE

performctl returns zero when the operation is successful. On error -1 is returned and an error code is set in errno.

AVAILABILITY

This syscall is implemented only on the IA-64 architecture since kernel 2.6.

SEE ALSO

gprof(1), The perfmon2 interface specification



perfmonctl(2)