papi_stop(3) - Linux man page

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)

Referenced By

papi_destroy_eventset(3), papi_state(3)