Blame SOURCES/papi-errmsg.patch

c7ea89
commit a37160c18eb8106a2b61ed181e2479a83381f3dc
c7ea89
Author: James Ralph <ralph@icl.utk.edu>
c7ea89
Date:   Fri Jul 25 15:59:41 2014 -0400
c7ea89
c7ea89
    perf_event.c: cleanup error messages
c7ea89
    
c7ea89
    Thanks to Gary Mohr
c7ea89
    -------------------
c7ea89
    This patch contains general cleanup code.  Calls to PAPIERROR pass a string which does
c7ea89
    not need to end with a new line because this function will always add one.  New lines at
c7ea89
    the end of strings passed to this function have been removed.  These changes also add
c7ea89
    some additional debug messages.
c7ea89
c7ea89
diff --git a/src/components/perf_event/perf_event.c b/src/components/perf_event/perf_event.c
c7ea89
index 049c810..3eea38d 100644
c7ea89
--- a/src/components/perf_event/perf_event.c
c7ea89
+++ b/src/components/perf_event/perf_event.c
c7ea89
@@ -300,11 +300,10 @@ sys_perf_event_open( struct perf_event_attr *hw_event, pid_t pid, int cpu,
c7ea89
 {
c7ea89
 	int ret;
c7ea89
 
c7ea89
-   SUBDBG("sys_perf_event_open(%p,%d,%d,%d,%lx\n",hw_event,pid,cpu,group_fd,flags);
c7ea89
+   SUBDBG("sys_perf_event_open(hw_event: %p, pid: %d, cpu: %d, group_fd: %d, flags: %lx\n", hw_event, pid, cpu, group_fd, flags);
c7ea89
    SUBDBG("   type: %d\n",hw_event->type);
c7ea89
    SUBDBG("   size: %d\n",hw_event->size);
c7ea89
-   SUBDBG("   config: %"PRIx64" (%"PRIu64")\n",hw_event->config,
c7ea89
-	  hw_event->config);
c7ea89
+   SUBDBG("   config: %"PRIx64" (%"PRIu64")\n",hw_event->config, hw_event->config);
c7ea89
    SUBDBG("   sample_period: %"PRIu64"\n",hw_event->sample_period);
c7ea89
    SUBDBG("   sample_type: %"PRIu64"\n",hw_event->sample_type);
c7ea89
    SUBDBG("   read_format: %"PRIu64"\n",hw_event->read_format);
c7ea89
@@ -323,6 +322,21 @@ sys_perf_event_open( struct perf_event_attr *hw_event, pid_t pid, int cpu,
c7ea89
    SUBDBG("   enable_on_exec: %d\n",hw_event->enable_on_exec);
c7ea89
    SUBDBG("   task: %d\n",hw_event->task);
c7ea89
    SUBDBG("   watermark: %d\n",hw_event->watermark);
c7ea89
+   SUBDBG("   precise_ip: %d\n",hw_event->precise_ip);
c7ea89
+   SUBDBG("   mmap_data: %d\n",hw_event->mmap_data);
c7ea89
+   SUBDBG("   sample_id_all: %d\n",hw_event->sample_id_all);
c7ea89
+   SUBDBG("   exclude_host: %d\n",hw_event->exclude_host);
c7ea89
+   SUBDBG("   exclude_guest: %d\n",hw_event->exclude_guest);
c7ea89
+   SUBDBG("   exclude_callchain_kernel: %d\n",hw_event->exclude_callchain_kernel);
c7ea89
+   SUBDBG("   exclude_callchain_user: %d\n",hw_event->exclude_callchain_user);
c7ea89
+   SUBDBG("   wakeup_events: %"PRIx32" (%"PRIu32")\n", hw_event->wakeup_events, hw_event->wakeup_events);
c7ea89
+   SUBDBG("   bp_type: %"PRIx32" (%"PRIu32")\n", hw_event->bp_type, hw_event->bp_type);
c7ea89
+   SUBDBG("   config1: %"PRIx64" (%"PRIu64")\n", hw_event->config1, hw_event->config1);
c7ea89
+   SUBDBG("   config2: %"PRIx64" (%"PRIu64")\n", hw_event->config2, hw_event->config2);
c7ea89
+   SUBDBG("   branch_sample_type: %"PRIx64" (%"PRIu64")\n", hw_event->branch_sample_type, hw_event->branch_sample_type);
c7ea89
+   SUBDBG("   sample_regs_user: %"PRIx64" (%"PRIu64")\n", hw_event->sample_regs_user, hw_event->sample_regs_user);
c7ea89
+   SUBDBG("   sample_stack_user: %"PRIx32" (%"PRIu32")\n", hw_event->sample_stack_user, hw_event->sample_stack_user);
c7ea89
+
c7ea89
 	ret =
c7ea89
 		syscall( __NR_perf_event_open, hw_event, pid, cpu, group_fd, flags );
c7ea89
 	SUBDBG("Returned %d %d %s\n",ret,
c7ea89
@@ -470,14 +484,14 @@ check_scheduability( pe_context_t *ctx, pe_control_t *ctl, int idx )
c7ea89
       /* start the event */
c7ea89
       retval = ioctl( group_leader_fd, PERF_EVENT_IOC_ENABLE, NULL );
c7ea89
       if (retval == -1) {
c7ea89
-	 PAPIERROR("ioctl(PERF_EVENT_IOC_ENABLE) failed.\n");
c7ea89
+	 PAPIERROR("ioctl(PERF_EVENT_IOC_ENABLE) failed");
c7ea89
 	 return PAPI_ESYS;
c7ea89
       }
c7ea89
 
c7ea89
       /* stop the event */
c7ea89
       retval = ioctl(group_leader_fd, PERF_EVENT_IOC_DISABLE, NULL );
c7ea89
       if (retval == -1) {
c7ea89
-	 PAPIERROR( "ioctl(PERF_EVENT_IOC_DISABLE) failed.\n" );
c7ea89
+	 PAPIERROR( "ioctl(PERF_EVENT_IOC_DISABLE) failed" );
c7ea89
 	 return PAPI_ESYS;
c7ea89
       }
c7ea89
 
c7ea89
@@ -514,7 +528,7 @@ check_scheduability( pe_context_t *ctx, pe_control_t *ctl, int idx )
c7ea89
 	   retval=ioctl( ctl->events[i].event_fd, PERF_EVENT_IOC_RESET, NULL );
c7ea89
 	   if (retval == -1) {
c7ea89
 	      PAPIERROR( "ioctl(PERF_EVENT_IOC_RESET) #%d/%d %d "
c7ea89
-			 "(fd %d)failed.\n",
c7ea89
+			 "(fd %d)failed",
c7ea89
 			 i,ctl->num_events,idx,ctl->events[i].event_fd);
c7ea89
 	      return PAPI_ESYS;
c7ea89
 	   }
c7ea89
@@ -794,7 +808,7 @@ close_pe_events( pe_context_t *ctx, pe_control_t *ctl )
c7ea89
    if (ctl->num_events!=num_closed) {
c7ea89
       if (ctl->num_events!=(num_closed+events_not_opened)) {
c7ea89
          PAPIERROR("Didn't close all events: "
c7ea89
-		   "Closed %d Not Opened: %d Expected %d\n",
c7ea89
+		   "Closed %d Not Opened: %d Expected %d",
c7ea89
 		   num_closed,events_not_opened,ctl->num_events);
c7ea89
          return PAPI_EBUG;
c7ea89
       }
c7ea89
@@ -824,9 +838,7 @@ _pe_set_domain( hwd_control_state_t *ctl, int domain)
c7ea89
    int i;
c7ea89
    pe_control_t *pe_ctl = ( pe_control_t *) ctl;
c7ea89
 
c7ea89
-   SUBDBG("old control domain %d, new domain %d\n",
c7ea89
-	  pe_ctl->domain,domain);
c7ea89
-
c7ea89
+   SUBDBG("old control domain %d, new domain %d\n", pe_ctl->domain,domain);
c7ea89
    pe_ctl->domain = domain;
c7ea89
 
c7ea89
    /* Force the domain on all events */
c7ea89
@@ -915,6 +927,8 @@ int
c7ea89
 _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
 	       long long **events, int flags )
c7ea89
 {
c7ea89
+	SUBDBG("ENTER: ctx: %p, ctl: %p, events: %p, flags: %#x\n", ctx, ctl, events, flags);
c7ea89
+
c7ea89
    ( void ) flags;			 /*unused */
c7ea89
    int i, ret = -1;
c7ea89
    pe_context_t *pe_ctx = ( pe_context_t *) ctx;
c7ea89
@@ -964,7 +978,7 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
 
c7ea89
 	 /* We should read 3 64-bit values from the counter */
c7ea89
 	 if (ret<(signed)(3*sizeof(long long))) {
c7ea89
-	    PAPIERROR("Error!  short read!\n");
c7ea89
+	    PAPIERROR("Error!  short read");
c7ea89
 	    return PAPI_ESYS;
c7ea89
 	 }
c7ea89
 
c7ea89
@@ -1020,8 +1034,8 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
 
c7ea89
 	 /* we should read one 64-bit value from each counter */
c7ea89
 	 if (ret!=sizeof(long long)) {
c7ea89
-	    PAPIERROR("Error!  short read!\n");
c7ea89
-	    PAPIERROR("read: fd: %2d, tid: %ld, cpu: %d, ret: %d\n",
c7ea89
+	    PAPIERROR("Error!  short read");
c7ea89
+	    PAPIERROR("read: fd: %2d, tid: %ld, cpu: %d, ret: %d",
c7ea89
 		   pe_ctl->events[i].event_fd,
c7ea89
 		   (long)pe_ctl->tid, pe_ctl->cpu, ret);
c7ea89
 	    return PAPI_ESYS;
c7ea89
@@ -1042,7 +1056,7 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
 
c7ea89
    else {
c7ea89
       if (pe_ctl->events[0].group_leader_fd!=-1) {
c7ea89
-	 PAPIERROR("Was expecting group leader!\n");
c7ea89
+	 PAPIERROR("Was expecting group leader");
c7ea89
       }
c7ea89
 
c7ea89
       ret = read( pe_ctl->events[0].event_fd, papi_pe_buffer,
c7ea89
@@ -1056,7 +1070,7 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
       /* we read 1 64-bit value (number of events) then     */
c7ea89
       /* num_events more 64-bit values that hold the counts */
c7ea89
       if (ret<(signed)((1+pe_ctl->num_events)*sizeof(long long))) {
c7ea89
-	 PAPIERROR("Error! short read!\n");
c7ea89
+	 PAPIERROR("Error! short read");
c7ea89
 	 return PAPI_ESYS;
c7ea89
       }
c7ea89
 
c7ea89
@@ -1072,7 +1086,7 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
 
c7ea89
       /* Make sure the kernel agrees with how many events we have */
c7ea89
       if (papi_pe_buffer[0]!=pe_ctl->num_events) {
c7ea89
-	 PAPIERROR("Error!  Wrong number of events!\n");
c7ea89
+	 PAPIERROR("Error!  Wrong number of events");
c7ea89
 	 return PAPI_ESYS;
c7ea89
       }
c7ea89
 
c7ea89
@@ -1106,6 +1120,7 @@ _pe_read( hwd_context_t *ctx, hwd_control_state_t *ctl,
c7ea89
    /* point PAPI to the values we read */
c7ea89
    *events = pe_ctl->counts;
c7ea89
 
c7ea89
+   SUBDBG("EXIT: *events: %p\n", *events);
c7ea89
    return PAPI_OK;
c7ea89
 }
c7ea89
 
c7ea89
@@ -1134,7 +1149,7 @@ _pe_start( hwd_context_t *ctx, hwd_control_state_t *ctl )
c7ea89
 
c7ea89
 	 /* ioctls always return -1 on failure */
c7ea89
          if (ret == -1) {
c7ea89
-            PAPIERROR("ioctl(PERF_EVENT_IOC_ENABLE) failed.\n");
c7ea89
+            PAPIERROR("ioctl(PERF_EVENT_IOC_ENABLE) failed");
c7ea89
             return PAPI_ESYS;
c7ea89
 	 }
c7ea89
 
c7ea89
@@ -1143,7 +1158,7 @@ _pe_start( hwd_context_t *ctx, hwd_control_state_t *ctl )
c7ea89
    }
c7ea89
 
c7ea89
    if (!did_something) {
c7ea89
-      PAPIERROR("Did not enable any counters.\n");
c7ea89
+      PAPIERROR("Did not enable any counters");
c7ea89
       return PAPI_EBUG;
c7ea89
    }
c7ea89
 
c7ea89
@@ -1157,6 +1172,7 @@ _pe_start( hwd_context_t *ctx, hwd_control_state_t *ctl )
c7ea89
 int
c7ea89
 _pe_stop( hwd_context_t *ctx, hwd_control_state_t *ctl )
c7ea89
 {
c7ea89
+	SUBDBG( "ENTER: ctx: %p, ctl: %p\n", ctx, ctl);
c7ea89
 
c7ea89
    int ret;
c7ea89
    int i;
c7ea89
@@ -1178,6 +1194,7 @@ _pe_stop( hwd_context_t *ctx, hwd_control_state_t *ctl )
c7ea89
 
c7ea89
    pe_ctx->state &= ~PERF_EVENTS_RUNNING;
c7ea89
 
c7ea89
+	SUBDBG( "EXIT:\n");
c7ea89
    return PAPI_OK;
c7ea89
 }
c7ea89
 
c7ea89
@@ -1190,6 +1207,7 @@ _pe_update_control_state( hwd_control_state_t *ctl,
c7ea89
 			       NativeInfo_t *native,
c7ea89
 			       int count, hwd_context_t *ctx )
c7ea89
 {
c7ea89
+   SUBDBG( "ENTER: ctl: %p, native: %p, count: %d, ctx: %p\n", ctl, native, count, ctx);
c7ea89
    int i = 0, ret;
c7ea89
    pe_context_t *pe_ctx = ( pe_context_t *) ctx;
c7ea89
    pe_control_t *pe_ctl = ( pe_control_t *) ctl;
c7ea89
@@ -1202,7 +1220,7 @@ _pe_update_control_state( hwd_control_state_t *ctl,
c7ea89
    /* Calling with count==0 should be OK, it's how things are deallocated */
c7ea89
    /* when an eventset is destroyed.                                      */
c7ea89
    if ( count == 0 ) {
c7ea89
-      SUBDBG( "Called with count == 0\n" );
c7ea89
+      SUBDBG( "EXIT: Called with count == 0\n" );
c7ea89
       return PAPI_OK;
c7ea89
    }
c7ea89
 
c7ea89
@@ -1236,15 +1254,16 @@ _pe_update_control_state( hwd_control_state_t *ctl,
c7ea89
    pe_ctl->num_events = count;
c7ea89
    _pe_set_domain( ctl, pe_ctl->domain );
c7ea89
 
c7ea89
-   /* actuall open the events */
c7ea89
+   /* actually open the events */
c7ea89
    /* (why is this a separate function?) */
c7ea89
    ret = open_pe_events( pe_ctx, pe_ctl );
c7ea89
    if ( ret != PAPI_OK ) {
c7ea89
-      SUBDBG("open_pe_events failed\n");
c7ea89
+      SUBDBG("EXIT: open_pe_events returned: %d\n", ret);
c7ea89
       /* Restore values ? */
c7ea89
       return ret;
c7ea89
    }
c7ea89
 
c7ea89
+   SUBDBG( "EXIT:\n" );
c7ea89
    return PAPI_OK;
c7ea89
 }
c7ea89
 
c7ea89
@@ -1914,7 +1933,7 @@ _pe_dispatch_timer( int n, hwd_siginfo_t *info, void *uc)
c7ea89
   }
c7ea89
         
c7ea89
   if (ioctl( fd, PERF_EVENT_IOC_DISABLE, NULL ) == -1 ) {
c7ea89
-      PAPIERROR("ioctl(PERF_EVENT_IOC_DISABLE) failed.\n");
c7ea89
+      PAPIERROR("ioctl(PERF_EVENT_IOC_DISABLE) failed");
c7ea89
   }
c7ea89
 
c7ea89
   if ( ( thread->running_eventset[cidx]->state & PAPI_PROFILING ) &&