A hardware event can be either a PAPI Preset or a native hardware event code. For a list of PAPI preset
events, see PAPI_presets or run the papi_avail utility in the PAPI distribution. PAPI Presets can be
passed to PAPI_query_event to see if they exist on the underlying architecture. For a list of native
events available on the current platform, run papi_native_avail in the PAPI distribution.
CInterface:
#include <papi.h>
int PAPI_remove_event(intEventSet,intEventCode);
ParametersEventSet -- an integer handle for a PAPI event set as created by PAPI_create_eventsetEventCode -- a defined event such as PAPI_TOT_INS or a native event.
ReturnvaluesPAPI_OK Everything worked.
PAPI_EINVAL One or more of the arguments is invalid.
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.
Example:
int EventSet = PAPI_NULL;
int ret;
// Create an empty EventSet
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);
// Stop counting, ignore values
ret = PAPI_stop(EventSet, NULL);
if (ret != PAPI_OK) handle_error(ret);
// Remove event
ret = PAPI_remove_event(EventSet, PAPI_TOT_INS);
if (ret != PAPI_OK) handle_error(ret);
SeealsoPAPI_cleanup_eventsetPAPI_destroy_eventsetPAPI_event_name_to_code
PAPI_presets
PAPI_add_eventPAPI_add_events