PAPI_start

Langue: en

Version: September, 2004 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

PAPI_start - start counting hardware events in an event set

PAPI_stop - stop counting hardware events in an event set

SYNOPSIS

C Interface
 #include <papi.h>
 int PAPI_start(int EventSet);
 int PAPI_stop(int EventSet, long_long *values);
 
Fortran Interface
 #include fpapi.h
 PAPIF_start(C_INT EventSet, C_INT check)
 PAPIF_stop(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)
 

DESCRIPTION

PAPI_start starts counting all of the hardware events contained in the previously defined EventSet. All counters are implicitly set to zero before counting.

PAPI_stop halts the counting of a previously defined event set and the counter values contained in that EventSet are copied into the values array

These calls assume an initialized PAPI library and a properly added event set.

ARGUMENTS

EventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventset(3)

*values -- an array to hold the counter values of the counting events

RETURN VALUES

On success, this function returns PAPI_OK.
 On error, a non-zero error code is returned.

ERRORS

PAPI_EINVAL
One or more of the arguments is invalid.
PAPI_ESYS
A system or C library call failed inside PAPI, see the errno variable.
PAPI_ENOEVST
The EventSet specified does not exist.
PAPI_EISRUN
The EventSet is currently counting events. (PAPI_start() only)
PAPI_ENOTRUN
The EventSet is currently not running. (PAPI_stop() only)
PAPI_ECNFLCT
The underlying counter hardware can not count this event and other events in the EventSet simultaneously. (PAPI_start() only)
PAPI_ENOEVNT
The PAPI preset is not available on the underlying hardware.

EXAMPLES

   if (PAPI_create_eventset(&EventSet) != PAPI_OK)
     handle_error(1);
 
   /* Add Total Instructions Executed to our EventSet */
   if (PAPI_add_event(EventSet, PAPI_TOT_INS) != PAPI_OK)
     handle_error(1);
 
   /* Start counting */
   if (PAPI_start(EventSet) != PAPI_OK)
     handle_error(1);
 
   poorly_tuned_function();
 
   if (PAPI_stop(EventSet, values) != PAPI_OK)
     handle_error(1);
 
   printf("%lld\n",values[0]);
 

BUGS

These functions have no known bugs.

SEE ALSO

PAPI_create_eventset(3), PAPI_add_event(3), PAPI(3), PAPIF(3)