/* Void Main's man pages */

{ phpMan } else { main(); }

Command: man perldoc info search(apropos)  


PERFMONCTL(2)                                          Linux System Calls                                          PERFMONCTL(2)



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 mon-
       itoring 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



Linux                                                    28 August 2006                                            PERFMONCTL(2)

Valid XHTML 1.0!Valid CSS!