|
PAPI
5.0.1.0
|
Start counting hardware events in an event set. More...
| EventSet | -- an integer handle for a PAPI event set as created by PAPI_create_eventset |
| PAPI_OK | |
| 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_ECNFLCT | -- The underlying counter hardware can not count this event and other events in the EventSet simultaneously. |
| PAPI_ENOEVNT | -- The PAPI preset is not available on the underlying hardware. |
PAPI_start starts counting all of the hardware events contained in the previously defined EventSet. All counters are implicitly set to zero before counting. Assumes an initialized PAPI library and a properly added event set.
int EventSet = PAPI_NULL; long long values[2]; int ret; ret = PAPI_create_eventset(&EventSet); if (ret != PAPI_OK) handle_error(ret); // Add Total Instructions Executed to our EventSet ret = PAPI_add_event(EventSet, PAPI_TOT_INS); if (ret != PAPI_OK) handle_error(ret); // Start counting ret = PAPI_start(EventSet); if (ret != PAPI_OK) handle_error(ret); poorly_tuned_function(); ret = PAPI_stop(EventSet, values); if (ret != PAPI_OK) handle_error(ret); printf("%lld\\n",values[0]);