NAME

PAPI_start, PAPI_stop - start/stop counting hardware events in an event set

CONTENTS

Synopsis
Description
Arguments
Return Values
Errors
Examples
Authors
Bugs
See Also

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

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_ENOEVNT
  The PAPI preset is not available on the underlying hardware.

EXAMPLES


  int EventSet = PAPI_NULL;
  unsigned int native = 0x0;
  long_long values[1];
        
  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]);

AUTHORS

The PAPI Team. See them at the PAPI Web Site: http://icl.cs.utk.edu/projects/papi

BUGS

These functions have no known bugs.

SEE ALSO

PAPI_create_eventset (3), PAPI_destroy_eventset (3), PAPI_add_event (3), PAPI_remove_event (3), PAPI_reset (3), PAPI_set_opt (3),


PAPI Programmer’s Reference PAPI_start (3) November, 2003

  Innovative Computing Laboratory
2001 R&D Winner  
Contact PAPI: papi@cs.utk.edu Computer Science Department
  University of Tennessee