|
PAPI
5.0.1.0
|

Go to the source code of this file.
Defines | |
| #define | ERROR_RETURN(retval) { fprintf(stderr, "Error %d %s:line %d: \n", retval,__FILE__,__LINE__); exit(retval); } |
Functions | |
| int | poorly_tuned_function () |
| int | main () |
| #define ERROR_RETURN | ( | retval | ) | { fprintf(stderr, "Error %d %s:line %d: \n", retval,__FILE__,__LINE__); exit(retval); } |
Definition at line 13 of file PAPI_set_domain.c.
| int main | ( | ) |
Definition at line 27 of file PAPI_set_domain.c.
{
int num, retval, EventSet = PAPI_NULL;
long long values[2];
PAPI_option_t options;
int fd;
/****************************************************************************
* This part initializes the library and compares the version number of the *
* header file, to the version of the library, if these don't match then it *
* is likely that PAPI won't work correctly.If there is an error, retval *
* keeps track of the version number. *
****************************************************************************/
if((retval = PAPI_library_init(PAPI_VER_CURRENT)) != PAPI_VER_CURRENT )
{
printf("Library initialization error! \n");
exit(1);
}
/* Set the domain of this EventSet to counter user mode. The domain
will be valid for all the eventset created after this function call
unless you call PAPI_set_domain again */
if ((retval=PAPI_set_domain(PAPI_DOM_USER)) != PAPI_OK)
ERROR_RETURN(retval);
if ((retval=PAPI_create_eventset(&EventSet)) != PAPI_OK)
ERROR_RETURN(retval);
/* Add Total Instructions Executed event to the EventSet */
if ( (retval = PAPI_add_event(EventSet, PAPI_TOT_INS)) != PAPI_OK)
ERROR_RETURN(retval);
/* Add Total Cycles Executed event to the EventSet */
if ( (retval = PAPI_add_event(EventSet, PAPI_TOT_CYC)) != PAPI_OK)
ERROR_RETURN(retval);
/* Start counting */
if((retval=PAPI_start(EventSet)) != PAPI_OK)
ERROR_RETURN(retval);
poorly_tuned_function();
/* add some system calls */
fd = open("/dev/zero", O_RDONLY);
if (fd == -1)
{
perror("open(/dev/zero)");
exit(1);
}
close(fd);
/* Stop counting */
if((retval=PAPI_stop(EventSet, values)) != PAPI_OK)
ERROR_RETURN(retval);
printf(" Total instructions: %lld Total Cycles: %lld \n", values[0],
values[1]);
/* Set the domain of this EventSet to counter user and kernel modes */
if ((retval=PAPI_set_domain(PAPI_DOM_ALL)) != PAPI_OK)
ERROR_RETURN(retval);
EventSet = PAPI_NULL;
if ((retval=PAPI_create_eventset(&EventSet)) != PAPI_OK)
ERROR_RETURN(retval);
/* Add Total Instructions Executed to our EventSet */
if ( (retval = PAPI_add_event(EventSet, PAPI_TOT_INS)) != PAPI_OK)
ERROR_RETURN(retval);
/* Add Total Instructions Executed to our EventSet */
if ( (retval = PAPI_add_event(EventSet, PAPI_TOT_CYC)) != PAPI_OK)
ERROR_RETURN(retval);
/* Start counting */
if((retval=PAPI_start(EventSet)) != PAPI_OK)
ERROR_RETURN(retval);
poorly_tuned_function();
/* add some system calls */
fd = open("/dev/zero", O_RDONLY);
if (fd == -1)
{
perror("open(/dev/zero)");
exit(1);
}
close(fd);
/* Stop counting */
if((retval=PAPI_stop(EventSet, values)) != PAPI_OK)
ERROR_RETURN(retval);
printf(" Total instructions: %lld Total Cycles: %lld \n", values[0],
values[1]);
/* clean up */
PAPI_shutdown();
exit(0);
}

| int poorly_tuned_function | ( | ) |
Definition at line 15 of file PAPI_set_domain.c.