PAPI3:PAPI set domain.3
From PAPIDocs
Jump to: navigation, search


  • PAPI_set_domain - set the default execution domain for new event sets


C Interface

#include <papi.h>
int PAPI_set_domain(int  domain );

Fortran Interface

#include fpapi.h
PAPIF_set_domain(C_INT  domain,  C_INT  check )
PAPIF_set_event_domain(C_INT  EventSet,  C_INT  domain,  C_INT  check )


PAPI_set_domain sets the default execution domain for all new event sets created by PAPI_create_eventset (3) in all threads. Event sets that are already in existance are not affected. To change the domain of an existing event set, please see the PAPI_set_opt (3) man page. The reader should note that the domain of an event set affects only which mode the counter continue to run. Counts are still aggregated for the current process, and not for any other processes in the system. Thus when requesting PAPI_DOM_KERNEL , the user is asking for events that occur on behalf of the process, inside the kernel.


domain -- one of the following constants as defined in the papi.h header file:

PAPI_DOM_USER User context counted
PAPI_DOM_KERNEL Kernel/OS context counted
PAPI_DOM_OTHER Exception/transient mode counted
PAPI_DOM_SUPERVISOR Supervisor/hypervisor context counted
PAPI_DOM_ALL All above contexts counted
PAPI_DOM_MIN The smallest available context
PAPI_DOM_MAX The largest available context


PAPI_EINVAL One or more of the arguments is invalid.

PAPI_ENOEVST The event set specified does not exist.

PAPI_EISRUN The event set is currently counting events.


int retval;
/* Initialize the library */
retval = PAPI_library_init(PAPI_VER_CURRENT);
if (retval > 0 && retval != PAPI_VER_CURRENT) {
fprintf(stderr,"PAPI library version mismatch!\n");
exit(1); }
if (retval < 0)
if ((retval = PAPI_set_domain(PAPI_DOM_KERNEL)) != PAPI_OK)
if ((retval = PAPI_create_eventset(&EventSet)) != PAPI_OK)


This function has no known bugs.

See Also