table of contents
PAPI_start(3) | PAPI | PAPI_start(3) |
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)
September, 2004 | PAPI Programmer's Reference |