Blame src/components/perf_event/tests/perf_event_user_kernel.c

Packit 577717
/*
Packit 577717
 * This tests the use of offcore_response events
Packit 577717
 */
Packit 577717
Packit 577717
#include <stdio.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
#include "event_name_lib.h"
Packit 577717
Packit 577717
int main( int argc, char **argv ) {
Packit 577717
Packit 577717
Packit 577717
   char *instructions_event=NULL;
Packit 577717
   char event_name[BUFSIZ];
Packit 577717
Packit 577717
   char user_event[BUFSIZ];
Packit 577717
   char kernel_event[BUFSIZ];
Packit 577717
   char user_kernel_event[BUFSIZ];
Packit 577717
Packit 577717
Packit 577717
   int retval;
Packit 577717
Packit 577717
   /* Default Domain */
Packit 577717
   int EventSet_default = PAPI_NULL;
Packit 577717
   int EventSet_default_user = PAPI_NULL;
Packit 577717
   int EventSet_default_kernel = PAPI_NULL;
Packit 577717
   int EventSet_default_user_kernel = PAPI_NULL;
Packit 577717
   long long default_values[1];
Packit 577717
   long long default_user_values[1];
Packit 577717
   long long default_kernel_values[1];
Packit 577717
   long long default_user_kernel_values[1];
Packit 577717
Packit 577717
   /* User Domain */
Packit 577717
   int EventSet_user = PAPI_NULL;
Packit 577717
   int EventSet_user_user = PAPI_NULL;
Packit 577717
   int EventSet_user_kernel = PAPI_NULL;
Packit 577717
   int EventSet_user_user_kernel = PAPI_NULL;
Packit 577717
   long long user_values[1];
Packit 577717
   long long user_user_values[1];
Packit 577717
   long long user_kernel_values[1];
Packit 577717
   long long user_user_kernel_values[1];
Packit 577717
Packit 577717
   /* Kernel Domain */
Packit 577717
   int EventSet_kernel = PAPI_NULL;
Packit 577717
   int EventSet_kernel_user = PAPI_NULL;
Packit 577717
   int EventSet_kernel_kernel = PAPI_NULL;
Packit 577717
   int EventSet_kernel_user_kernel = PAPI_NULL;
Packit 577717
   long long kernel_values[1];
Packit 577717
   long long kernel_user_values[1];
Packit 577717
   long long kernel_kernel_values[1];
Packit 577717
   long long kernel_user_kernel_values[1];
Packit 577717
Packit 577717
   /* All Domain */
Packit 577717
   int EventSet_all = PAPI_NULL;
Packit 577717
   int EventSet_all_user = PAPI_NULL;
Packit 577717
   int EventSet_all_kernel = PAPI_NULL;
Packit 577717
   int EventSet_all_user_kernel = PAPI_NULL;
Packit 577717
   long long all_values[1];
Packit 577717
   long long all_user_values[1];
Packit 577717
   long long all_kernel_values[1];
Packit 577717
   long long all_user_kernel_values[1];
Packit 577717
Packit 577717
   /* Two Events */
Packit 577717
   int EventSet_two = PAPI_NULL;
Packit 577717
   long long two_values[2];
Packit 577717
Packit 577717
	int quiet=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
Packit 577717
   /* Get a relevant event name */
Packit 577717
   instructions_event=get_instructions_event(event_name, BUFSIZ);
Packit 577717
   if (instructions_event==NULL) {
Packit 577717
      test_skip( __FILE__, __LINE__,
Packit 577717
                "No instructions event definition for this arch",
Packit 577717
		 PAPI_ENOSUPP );
Packit 577717
   }
Packit 577717
Packit 577717
   sprintf(user_event,"%s:u=1",instructions_event);
Packit 577717
   sprintf(kernel_event,"%s:k=1",instructions_event);
Packit 577717
   sprintf(user_kernel_event,"%s:u=1:k=1",instructions_event);
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Two Events                    */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   if (!quiet) {
Packit 577717
      printf("\tTwo Events in same EventSet\n");
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_two);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_two, user_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s %s\n",user_event,PAPI_strerror(retval));
Packit 577717
      }
Packit 577717
	test_skip( __FILE__, __LINE__,"Could not add event",PAPI_ENOSUPP);
Packit 577717
   }
Packit 577717
   retval = PAPI_add_named_event(EventSet_two, kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_two );
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( EventSet_two, two_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("\t\t%s count = %lld, %s count = %lld\n",
Packit 577717
	    user_event,two_values[0],
Packit 577717
	    kernel_event,two_values[1]);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Default Domain, Default Event */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   if (!quiet) {
Packit 577717
      printf("\tDefault Domain\n");
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_default);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_default, instructions_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",instructions_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_default );
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( EventSet_default, 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("\t\t%s count = %lld\n",instructions_event,default_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Default Domain, User Event */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_default_user);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_default_user, user_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_default_user );
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( EventSet_default_user, default_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("\t\t%s count = %lld\n",user_event,default_user_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Default Domain, Kernel Event */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_default_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_default_kernel, kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_default_kernel );
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( EventSet_default_kernel, default_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("\t\t%s count = %lld\n",kernel_event,default_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*****************************************/
Packit 577717
   /* Default Domain, user and Kernel Event */
Packit 577717
   /*****************************************/
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_default_user_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_default_user_kernel, user_kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_default_user_kernel );
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( EventSet_default_user_kernel, default_user_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("\t\t%s count = %lld\n",user_kernel_event,default_user_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* User Domain, Default Event    */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   if (!quiet) {
Packit 577717
      printf("\tPAPI_DOM_USER Domain\n");
Packit 577717
   }
Packit 577717
Packit 577717
   retval=PAPI_set_cmp_domain(PAPI_DOM_USER, 0);
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_user);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_user, instructions_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",instructions_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_user );
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( EventSet_user, 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("\t\t%s count = %lld\n",instructions_event,user_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* User Domain, User Event       */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_user_user);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_user_user, user_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_user_user );
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( EventSet_user_user, user_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("\t\t%s count = %lld\n",user_event,user_user_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* User Domain, Kernel Event     */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_user_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_user_kernel, kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_user_kernel );
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( EventSet_user_kernel, user_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("\t\t%s count = %lld\n",kernel_event,user_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*****************************************/
Packit 577717
   /* User Domain, user and Kernel Event    */
Packit 577717
   /*****************************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_user_user_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_user_user_kernel, user_kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_user_user_kernel );
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( EventSet_user_user_kernel, user_user_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("\t\t%s count = %lld\n",user_kernel_event,user_user_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Kernel Domain, Default Event  */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   if (!quiet) {
Packit 577717
      printf("\tPAPI_DOM_KERNEL Domain\n");
Packit 577717
   }
Packit 577717
Packit 577717
   retval=PAPI_set_cmp_domain(PAPI_DOM_KERNEL, 0);
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_kernel, instructions_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",instructions_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_kernel );
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( EventSet_kernel, 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("\t\t%s count = %lld\n",instructions_event,kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Kernel Domain, User Event     */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_kernel_user);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_kernel_user, user_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_kernel_user );
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( EventSet_kernel_user, kernel_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("\t\t%s count = %lld\n",user_event,kernel_user_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* Kernel Domain, Kernel Event   */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_kernel_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_kernel_kernel, kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_kernel_kernel );
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( EventSet_kernel_kernel, kernel_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("\t\t%s count = %lld\n",kernel_event,kernel_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*****************************************/
Packit 577717
   /* Kernel Domain, user and Kernel Event  */
Packit 577717
   /*****************************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_kernel_user_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_kernel_user_kernel, user_kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_kernel_user_kernel );
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( EventSet_kernel_user_kernel, kernel_user_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("\t\t%s count = %lld\n",user_kernel_event,kernel_user_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* All Domain, Default Event  */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   if (!quiet) {
Packit 577717
      printf("\tPAPI_DOM_ALL Domain\n");
Packit 577717
   }
Packit 577717
Packit 577717
   retval=PAPI_set_cmp_domain(PAPI_DOM_ALL, 0);
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_all);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_all, instructions_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",instructions_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_all );
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( EventSet_all, 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("\t\t%s count = %lld\n",instructions_event,all_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* All Domain, User Event        */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_all_user);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_all_user, user_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_all_user );
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( EventSet_all_user, all_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("\t\t%s count = %lld\n",user_event,all_user_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*********************************/
Packit 577717
   /* All Domain, Kernel Event      */
Packit 577717
   /*********************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_all_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_all_kernel, kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_all_kernel );
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( EventSet_all_kernel, all_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("\t\t%s count = %lld\n",kernel_event,all_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /*****************************************/
Packit 577717
   /* All Domain, user and Kernel Event     */
Packit 577717
   /*****************************************/
Packit 577717
Packit 577717
   retval = PAPI_create_eventset(&EventSet_all_user_kernel);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      test_fail(__FILE__, __LINE__, "PAPI_create_eventset",retval);
Packit 577717
   }
Packit 577717
Packit 577717
Packit 577717
   retval = PAPI_add_named_event(EventSet_all_user_kernel, user_kernel_event);
Packit 577717
   if (retval != PAPI_OK) {
Packit 577717
      if ( !quiet ) {
Packit 577717
	 fprintf(stderr,"Error trying to add %s\n",user_kernel_event);
Packit 577717
      }
Packit 577717
      test_fail(__FILE__, __LINE__, "adding instructions event ",retval);
Packit 577717
   }
Packit 577717
Packit 577717
   retval = PAPI_start( EventSet_all_user_kernel );
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( EventSet_all_user_kernel, all_user_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("\t\t%s count = %lld\n",user_kernel_event,all_user_kernel_values[0]);
Packit 577717
   }
Packit 577717
Packit 577717
   /**************/
Packit 577717
   /* Validation */
Packit 577717
   /**************/
Packit 577717
Packit 577717
   //TODO
Packit 577717
Packit 577717
	test_pass( __FILE__ );
Packit 577717
Packit 577717
	return 0;
Packit 577717
}