|
Packit |
577717 |
/*
|
|
Packit |
577717 |
* This tests the measuring of events using a system-wide granularity
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include <stdio.h>
|
|
Packit |
577717 |
#include <errno.h>
|
|
Packit |
577717 |
#include <string.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include "papi.h"
|
|
Packit |
577717 |
#include "papi_test.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include "do_loops.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#ifndef __USE_GNU
|
|
Packit |
577717 |
#define __USE_GNU
|
|
Packit |
577717 |
#endif
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* For sched_setaffinity() */
|
|
Packit |
577717 |
#include <sched.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int main( int argc, char **argv ) {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int retval;
|
|
Packit |
577717 |
int EventSetDefault = PAPI_NULL;
|
|
Packit |
577717 |
int EventSetUser = PAPI_NULL;
|
|
Packit |
577717 |
int EventSetKernel = PAPI_NULL;
|
|
Packit |
577717 |
int EventSetUserKernel = PAPI_NULL;
|
|
Packit |
577717 |
int EventSetAll = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet4 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet5 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet6 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet7 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet8 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet9 = PAPI_NULL;
|
|
Packit |
577717 |
int EventSet10 = PAPI_NULL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
int quiet=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
PAPI_domain_option_t domain_opt;
|
|
Packit |
577717 |
PAPI_granularity_option_t gran_opt;
|
|
Packit |
577717 |
PAPI_cpu_option_t cpu_opt;
|
|
Packit |
577717 |
cpu_set_t mask;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
long long dom_default_values[1],
|
|
Packit |
577717 |
dom_user_values[1],
|
|
Packit |
577717 |
dom_kernel_values[1],
|
|
Packit |
577717 |
dom_userkernel_values[1],
|
|
Packit |
577717 |
dom_all_values[1];
|
|
Packit |
577717 |
long long grn_thr_values[1],grn_proc_values[1];
|
|
Packit |
577717 |
long long grn_sys_values[1],grn_sys_cpu_values[1];
|
|
Packit |
577717 |
long long total_values[1],total_affinity_values[1];
|
|
Packit |
577717 |
long long total_all_values[1];
|
|
Packit |
577717 |
|
|
Packit |
577717 |
dom_user_values[0]=0;
|
|
Packit |
577717 |
dom_userkernel_values[0]=0;
|
|
Packit |
577717 |
dom_all_values[0]=0;
|
|
Packit |
577717 |
grn_thr_values[0]=0;
|
|
Packit |
577717 |
grn_proc_values[0]=0;
|
|
Packit |
577717 |
grn_sys_values[0]=0;
|
|
Packit |
577717 |
grn_sys_cpu_values[0]=0;
|
|
Packit |
577717 |
total_values[0]=0;
|
|
Packit |
577717 |
total_affinity_values[0]=0;
|
|
Packit |
577717 |
total_all_values[0]=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set TESTS_QUIET variable */
|
|
Packit |
577717 |
quiet=tests_quiet( argc, argv );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Init the PAPI library */
|
|
Packit |
577717 |
retval = PAPI_library_init( PAPI_VER_CURRENT );
|
|
Packit |
577717 |
if ( retval != PAPI_VER_CURRENT ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_library_init", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\nTrying PAPI_TOT_INS with different domains:\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* Default */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSetDefault);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSetDefault, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_skip(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\tDefault:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSetDefault );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSetDefault, dom_default_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",dom_default_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* user events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSetUser);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSetUser, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* we need to set domain to be as inclusive as possible */
|
|
Packit |
577717 |
domain_opt.def_cidx=0;
|
|
Packit |
577717 |
domain_opt.eventset=EventSetUser;
|
|
Packit |
577717 |
domain_opt.domain=PAPI_DOM_USER;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_DOMAIN,(PAPI_option_t*)&domain_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_DOM_ALL; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "setting PAPI_DOM_KERNEL",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSetUser, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_skip(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\tPAPI_DOM_USER:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSetUser );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSetUser, dom_user_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",dom_user_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* kernel events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSetKernel);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSetKernel, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* we need to set domain to be as inclusive as possible */
|
|
Packit |
577717 |
domain_opt.def_cidx=0;
|
|
Packit |
577717 |
domain_opt.eventset=EventSetKernel;
|
|
Packit |
577717 |
domain_opt.domain=PAPI_DOM_KERNEL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_DOMAIN,(PAPI_option_t*)&domain_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_DOM_ALL; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "setting PAPI_DOM_KERNEL",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSetKernel, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_skip(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\tPAPI_DOM_KERNEL:\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSetKernel );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSetKernel, dom_kernel_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",dom_kernel_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* User+Kernel events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\tPAPI_DOM_USER|PAPI_DOM_KERNEL:\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSetUserKernel);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSetUserKernel, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* we need to set domain to be as inclusive as possible */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
domain_opt.def_cidx=0;
|
|
Packit |
577717 |
domain_opt.eventset=EventSetUserKernel;
|
|
Packit |
577717 |
domain_opt.domain=PAPI_DOM_USER|PAPI_DOM_KERNEL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_DOMAIN,(PAPI_option_t*)&domain_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_DOM_ALL; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "setting PAPI_DOM_ALL",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSetUserKernel, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSetUserKernel );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSetUserKernel, dom_userkernel_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",dom_userkernel_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* DOMAIN_ALL events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("\tPAPI_DOM_ALL:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSetAll);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSetAll, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* we need to set domain to be as inclusive as possible */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
domain_opt.def_cidx=0;
|
|
Packit |
577717 |
domain_opt.eventset=EventSetAll;
|
|
Packit |
577717 |
domain_opt.domain=PAPI_DOM_ALL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_DOMAIN,(PAPI_option_t*)&domain_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_DOM_ALL; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "setting PAPI_DOM_ALL",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSetAll, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSetAll );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSetAll, dom_all_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",dom_all_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* PAPI_GRN_THR events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\nTrying different granularities:\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tPAPI_GRN_THR:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet4);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet4, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to individual thread */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet4;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_THR;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_GRN_THR",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet4, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
fprintf(stderr,"Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet4 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet4, grn_thr_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",grn_thr_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* PAPI_GRN_PROC events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tPAPI_GRN_PROC:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet5);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet5, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to process */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet5;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_PROC;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_PROC\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet5, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet5 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet5, grn_proc_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",grn_proc_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* PAPI_GRN_SYS events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tPAPI_GRN_SYS:\t\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet6);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet6, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to current cpu */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet6;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_SYS;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_SYS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet6, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval == PAPI_EPERM) {
|
|
Packit |
577717 |
/* FIXME: read perf_event_paranoid and see */
|
|
Packit |
577717 |
if (!quiet) printf("SYS granularity not allowed, probably perf_event_paranoid permissions\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error adding PAPI_TOT_INS with system granularity\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS with system granularity",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
} else {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet6 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet6, grn_sys_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",grn_sys_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
/* PAPI_GRN_SYS_CPU events */
|
|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
/****************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tPAPI_GRN_SYS_CPU:\t\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet7);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet7, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to all cpus */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet7;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_SYS_CPU;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_SYS_CPU\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet7, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet7 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet7, grn_sys_cpu_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",grn_sys_cpu_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* SYS and ATTACH events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\nPAPI_GRN_SYS plus CPU attach:\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tGRN_SYS, DOM_USER, CPU 0 attach:\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet8);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet8, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to system-wide */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet8;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_SYS;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_SYS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
/* we need to set to a certain cpu */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
cpu_opt.eventset=EventSet8;
|
|
Packit |
577717 |
cpu_opt.cpu_num=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_CPU_ATTACH,(PAPI_option_t*)&cpu_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Permission error trying to CPU_ATTACH; need to run as root\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to CPU_ATTACH; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_CPU_ATTACH",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet8, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet8 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet8, total_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",total_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* SYS and ATTACH, bind CPU events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tGRN_SYS, DOM_USER, CPU 0 affinity:\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set affinity to CPU 0 */
|
|
Packit |
577717 |
CPU_ZERO(&mask);
|
|
Packit |
577717 |
CPU_SET(0,&mask);
|
|
Packit |
577717 |
retval=sched_setaffinity(0, sizeof(mask), &mask);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval<0) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Setting affinity failed: %s\n",strerror(errno));
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
} else {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet9);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet9, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to system-wide */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet9;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_SYS;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_SYS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
/* we need to set to a certain cpu for uncore to work */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
cpu_opt.eventset=EventSet9;
|
|
Packit |
577717 |
cpu_opt.cpu_num=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_CPU_ATTACH,(PAPI_option_t*)&cpu_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_CPU_ATTACH",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet9, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet9 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet9, total_affinity_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",total_affinity_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/* SYS and ATTACH, bind CPU events */
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
/***************************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\tGRN_SYS, DOM_ALL, CPU 0 affinity:\t");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set affinity to CPU 0 */
|
|
Packit |
577717 |
CPU_ZERO(&mask);
|
|
Packit |
577717 |
CPU_SET(0,&mask);
|
|
Packit |
577717 |
retval=sched_setaffinity(0, sizeof(mask), &mask);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval<0) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Setting affinity failed: %s\n",strerror(errno));
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
} else {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_create_eventset(&EventSet10);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_assign_eventset_component(EventSet10, 0);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set DOM_ALL */
|
|
Packit |
577717 |
domain_opt.def_cidx=0;
|
|
Packit |
577717 |
domain_opt.eventset=EventSet10;
|
|
Packit |
577717 |
domain_opt.domain=PAPI_DOM_ALL;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_DOMAIN,(PAPI_option_t*)&domain_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if (retval==PAPI_EPERM) {
|
|
Packit |
577717 |
test_skip( __FILE__, __LINE__,
|
|
Packit |
577717 |
"this test; trying to set PAPI_DOM_ALL; need to run as root",
|
|
Packit |
577717 |
retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "setting PAPI_DOM_ALL",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/* Set the granularity to system-wide */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
gran_opt.def_cidx=0;
|
|
Packit |
577717 |
gran_opt.eventset=EventSet10;
|
|
Packit |
577717 |
gran_opt.granularity=PAPI_GRN_SYS;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_GRANUL,(PAPI_option_t*)&gran_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if (!quiet) {
|
|
Packit |
577717 |
printf("Unable to set PAPI_GRN_SYS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
else {
|
|
Packit |
577717 |
/* we need to set to a certain cpu for uncore to work */
|
|
Packit |
577717 |
|
|
Packit |
577717 |
cpu_opt.eventset=EventSet10;
|
|
Packit |
577717 |
cpu_opt.cpu_num=0;
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_set_opt(PAPI_CPU_ATTACH,(PAPI_option_t*)&cpu_opt);
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "PAPI_CPU_ATTACH",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_add_named_event(EventSet10, "PAPI_TOT_INS");
|
|
Packit |
577717 |
if (retval != PAPI_OK) {
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Error trying to add PAPI_TOT_INS\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
test_fail(__FILE__, __LINE__, "adding PAPI_TOT_INS ",retval);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_start( EventSet10 );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_start", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do_flops( NUM_FLOPS );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
retval = PAPI_stop( EventSet10, total_all_values );
|
|
Packit |
577717 |
if ( retval != PAPI_OK ) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "PAPI_stop", retval );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("%lld\n",total_all_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
/**************/
|
|
Packit |
577717 |
/* Validation */
|
|
Packit |
577717 |
/**************/
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("Validating:\n");
|
|
Packit |
577717 |
printf("\tDOM_USER|DOM_KERNEL (%lld) > DOM_USER (%lld)\n",
|
|
Packit |
577717 |
dom_userkernel_values[0],dom_user_values[0]);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
if (dom_user_values[0] > dom_userkernel_values[0]) {
|
|
Packit |
577717 |
test_fail( __FILE__, __LINE__, "DOM_USER too high", 0 );
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
if ( !quiet ) {
|
|
Packit |
577717 |
printf("\n");
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
test_pass( __FILE__ );
|
|
Packit |
577717 |
|
|
Packit |
577717 |
return 0;
|
|
Packit |
577717 |
}
|