/****************************************************************************** *** PARAVER_default_options ******************************************************************************/ static void Paraver_default_options (FILE * fd) { fprintf (fd, "DEFAULT_OPTIONS\n\n"); fprintf (fd, "LEVEL %s\n", DEFAULT_LEVEL); fprintf (fd, "UNITS %s\n", DEFAULT_UNITS); fprintf (fd, "LOOK_BACK %d\n", DEFAULT_LOOK_BACK); fprintf (fd, "SPEED %d\n", DEFAULT_SPEED); fprintf (fd, "FLAG_ICONS %s\n", DEFAULT_FLAG_ICONS); fprintf (fd, "NUM_OF_STATE_COLORS %d\n", DEFAULT_NUM_OF_STATE_COLORS); fprintf (fd, "YMAX_SCALE %d\n", DEFAULT_YMAX_SCALE); LET_SPACES (fd); fprintf (fd, "DEFAULT_SEMANTIC\n\n"); fprintf (fd, "THREAD_FUNC %s\n", DEFAULT_THREAD_FUNC); LET_SPACES (fd); }
static void Write_Trace_Mode_Labels (FILE * pcf_fd) { fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", TRACING_MODE_EV, "Tracing mode:"); fprintf (pcf_fd, "%s\n", VALUES_LABEL); fprintf (pcf_fd, "%d %s\n", TRACE_MODE_DETAIL, "Detailed"); fprintf (pcf_fd, "%d %s\n", TRACE_MODE_BURSTS, "CPU Bursts"); LET_SPACES (pcf_fd); }
/****************************************************************************** *** gradient_names ******************************************************************************/ static void Paraver_gradient_names (FILE * fd) { int i; fprintf (fd, "%s\n", GRADIENT_LBL); for (i = 0; i < GRADIENT_NUMBER; i++) fprintf (fd, "%d %s\n", gradient_inf[i].value, gradient_inf[i].label); LET_SPACES (fd); }
/****************************************************************************** *** state_labels ******************************************************************************/ static void Paraver_state_labels (FILE * fd) { int i; fprintf (fd, "%s\n", STATES_LBL); for (i = 0; i < STATES_NUMBER; i++) { fprintf (fd, "%d %s\n", states_inf[i].value, states_inf[i].label); } LET_SPACES (fd); }
static void Write_Spectral_Labels (FILE * pcf_fd) { if (HaveSpectralEvents) { unsigned i; fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", PERIODICITY_EV, PERIODICITY_LABEL); fprintf (pcf_fd, "%s\n", VALUES_LABEL); fprintf (pcf_fd, "0 Non-periodic zone\n"); for (i=1; i<=MaxRepresentativePeriod; i++) fprintf (pcf_fd, "%d Period #%d\n", i, i); LET_SPACES (pcf_fd); fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", DETAIL_LEVEL_EV, DETAIL_LEVEL_LABEL); fprintf (pcf_fd, "%s\n", VALUES_LABEL); fprintf (pcf_fd, "0 Not tracing\n"); fprintf (pcf_fd, "1 Profiling\n"); fprintf (pcf_fd, "2 Burst mode\n"); fprintf (pcf_fd, "3 Detail mode\n"); LET_SPACES (pcf_fd); fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", RAW_PERIODICITY_EV, RAW_PERIODICITY_LABEL); fprintf (pcf_fd, "%s\n", VALUES_LABEL); fprintf (pcf_fd, "0 Non-periodic zone\n"); for (i=1; i<=MaxRepresentativePeriod; i++) fprintf (pcf_fd, "%d Raw period #%d\n", i, i); LET_SPACES (pcf_fd); fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", RAW_BEST_ITERS_EV, RAW_BEST_ITERS_LABEL); fprintf (pcf_fd, "%s\n", VALUES_LABEL); for (i=1; i<=MaxRepresentativePeriod; i++) fprintf (pcf_fd, "%d Selected iterations from period #%d\n", i, i); LET_SPACES (pcf_fd); } }
void WriteEnabled_OPENSHMEM_Operations (FILE * fd) { unsigned u = 0; if (OPENSHMEM_Present) { fprintf (fd, "EVENT_TYPE\n"); fprintf (fd, "%d %d %s\n", 0, OPENSHMEM_BASE_EVENT, "OpenSHMEM calls"); fprintf (fd, "VALUES\n"); fprintf (fd, "0 Outside OpenSHMEM\n"); for (u = 0; u < COUNT_OPENSHMEM_EVENTS; u++) fprintf (fd, "%d %s\n", u+1, GetOPENSHMEMLabel( u )); LET_SPACES(fd); fprintf(fd, "EVENT_TYPE\n"); fprintf (fd, "%d %d %s\n", 0, OPENSHMEM_SENDBYTES_EV, "OpenSHMEM outgoing bytes"); LET_SPACES(fd); fprintf(fd, "EVENT_TYPE\n"); fprintf (fd, "%d %d %s\n", 0, OPENSHMEM_RECVBYTES_EV, "OpenSHMEM incoming bytes"); LET_SPACES(fd); } }
/****************************************************************************** *** gradient_colors ******************************************************************************/ static void Paraver_gradient_colors (FILE * fd) { int i; fprintf (fd, "%s\n", GRADIENT_COLOR_LBL); for (i = 0; i < GRADIENT_NUMBER; i++) { fprintf (fd, "%d {%d,%d,%d}\n", gradient_inf[i].value, gradient_inf[i].rgb[0], gradient_inf[i].rgb[1], gradient_inf[i].rgb[2]); } LET_SPACES (fd); }
/****************************************************************************** *** state_colors ******************************************************************************/ static void Paraver_state_colors (FILE * fd) { int i; fprintf (fd, "%s\n", STATES_COLOR_LBL); for (i = 0; i < STATES_NUMBER; i++) { fprintf (fd, "%d {%d,%d,%d}\n", states_inf[i].value, states_inf[i].rgb[0], states_inf[i].rgb[1], states_inf[i].rgb[2]); } LET_SPACES (fd); }
static void Write_memusage_Labels (FILE * pcf_fd) { int i; if (Memusage_Events_Found) { fprintf (pcf_fd, "%s\n", TYPE_LABEL); for (i=0; i<MEMUSAGE_EVENTS_COUNT; i++) { if (Memusage_Labels_Used[i]) { fprintf(pcf_fd, "0 %d %s\n", MEMUSAGE_BASE+i, Memusage_Event_Label(i)); } } LET_SPACES (pcf_fd); } }
static void Write_MPI_Stats_Labels (FILE * pcf_fd) { int i; if (MPI_Stats_Events_Found) { fprintf (pcf_fd, "%s\n", TYPE_LABEL); for (i=0; i<MPI_STATS_EVENTS_COUNT; i++) { if (MPI_Stats_Labels_Used[i]) { fprintf(pcf_fd, "0 %d %s\n", MPI_STATS_BASE+i, MPI_Stats_Event_Label(i)); } } LET_SPACES (pcf_fd); } }
static void Write_Clustering_Labels (FILE * pcf_fd) { if (MaxClusterId > 0) { unsigned i; fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "9 %d %s\n", CLUSTER_ID_EV, CLUSTER_ID_LABEL); fprintf (pcf_fd, "%s\n", VALUES_LABEL); fprintf (pcf_fd, "0 End\n"); fprintf (pcf_fd, "1 Missing Data\n"); fprintf (pcf_fd, "2 Duration Filtered\n"); fprintf (pcf_fd, "3 Range Filtered\n"); fprintf (pcf_fd, "4 Threshold Filtered\n"); fprintf (pcf_fd, "5 Noise\n"); for (i=6; i<=MaxClusterId; i++) fprintf (pcf_fd, "%d Cluster %d\n", i, i-5); LET_SPACES (pcf_fd); } }
void Write_UserDefined_Labels(FILE * pcf_fd) { unsigned i, j, max_types = Extrae_Vector_Count (&defined_user_event_types); for (i = 0; i < max_types; i++) { event_type_t * evt = Extrae_Vector_Get (&defined_user_event_types, i); unsigned max_values = Extrae_Vector_Count (&evt->event_values); fprintf (pcf_fd, "%s\n", TYPE_LABEL); fprintf (pcf_fd, "0 %d %s\n", evt->event_type.type, evt->event_type.label); if (max_values>0) { fprintf (pcf_fd, "%s\n", VALUES_LABEL); for (j = 0; j < max_values; j++) { value_t * values = Extrae_Vector_Get (&evt->event_values, j); fprintf (pcf_fd, "%d %s\n", values->value, values->label); } } LET_SPACES (pcf_fd); } }
void WriteEnabled_pthread_Operations (FILE * fd) { unsigned u; int anypresent = FALSE; #if defined(HAVE_BFD) int createpresent = FALSE; #endif for (u = 0; u < MAX_PTHREAD_TYPE_ENTRIES; u++) { anypresent = anypresent || pthread_event_presency_label[u].present; #if defined(HAVE_BFD) if (pthread_event_presency_label[u].eventtype == PTHREAD_CREATE_EV) createpresent = TRUE; #endif } if (anypresent) { fprintf (fd, "EVENT_TYPE\n"); fprintf (fd, "%d %d %s\n", 0, PTHREAD_BASE_EV, "pthread call"); fprintf (fd, "VALUES\n"); fprintf (fd, "0 Outside pthread call\n"); for (u = 0; u < MAX_PTHREAD_TYPE_ENTRIES; u++) if (pthread_event_presency_label[u].present) fprintf (fd, "%d %s\n", pthread_event_presency_label[u].eventval, pthread_event_presency_label[u].description); LET_SPACES(fd); } #if defined(HAVE_BFD) /* Hey, pthread & OpenMP share the same labels? */ if (createpresent) Address2Info_Write_OMP_Labels (fd, PTHREAD_FUNC_EV, "pthread function", PTHREAD_FUNC_LINE_EV, "pthread function line and file", get_option_merge_UniqueCallerID()); #endif }
void MISCEvent_WriteEnabledOperations (FILE * fd, long long options) { if (options & TRACEOPTION_BG_ARCH) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_PROCESSOR_ID, BG_PROCESSOR_ID); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_TORUS_A, BG_TORUS_A); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_TORUS_B, BG_TORUS_B); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_TORUS_C, BG_TORUS_C); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_TORUS_D, BG_TORUS_D); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, BG_PERSONALITY_TORUS_E, BG_TORUS_E); LET_SPACES (fd); } if (inuse[GETCPU_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, GETCPU_EV, GETCPU_LBL); LET_SPACES(fd); } if (inuse[APPL_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, APPL_EV, APPL_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", EVT_BEGIN, EVT_BEGIN_LBL); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, CLOCK_FROM_SYSTEM_EV, CLOCK_FROM_SYSTEM_LBL); LET_SPACES (fd); } if (inuse[FLUSH_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, FLUSH_EV, FLUSH_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", EVT_BEGIN, EVT_BEGIN_LBL); LET_SPACES (fd); } if (inuse[TRACING_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, TRACING_EV, TRACING_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, TRAC_DISABLED_LBL); fprintf (fd, "%d %s\n", EVT_BEGIN, TRAC_ENABLED_LBL); LET_SPACES (fd); } if (inuse[TRACE_INIT_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, TRACE_INIT_EV, TRACE_INIT_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", EVT_BEGIN, EVT_BEGIN_LBL); LET_SPACES (fd); } if (inuse[INOUT_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, IO_EV, IO_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", READ_VAL_EV, READ_LBL); fprintf (fd, "%d %s\n", WRITE_VAL_EV, WRITE_LBL); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, IO_SIZE_EV, IO_SIZE_LBL); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, IO_DESCRIPTOR_EV, IO_DESCRIPTOR_LBL); LET_SPACES (fd); } if (inuse[FORK_SYSCALL_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, FORK_SYSCALL_EV, FORK_SYSCALL_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", PRV_FORK_VALUE, FORK_LBL); fprintf (fd, "%d %s\n", PRV_WAIT_VALUE, WAIT_LBL); fprintf (fd, "%d %s\n", PRV_WAITPID_VALUE, WAITPID_LBL); fprintf (fd, "%d %s\n", PRV_EXEC_VALUE, EXEC_LBL); fprintf (fd, "%d %s\n", PRV_SYSTEM_VALUE, SYSTEM_LBL); LET_SPACES (fd); } if (inuse[DYNAMIC_MEM_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, DYNAMIC_MEM_EV, DYNAMIC_MEM_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "%d %s\n", EVT_END, EVT_END_LBL); fprintf (fd, "%d %s\n", PRV_MALLOC_VALUE, MALLOC_LBL); fprintf (fd, "%d %s\n", PRV_FREE_VALUE, FREE_LBL); fprintf (fd, "%d %s\n", PRV_REALLOC_VALUE, REALLOC_LBL); fprintf (fd, "%d %s\n", PRV_CALLOC_VALUE, CALLOC_LBL); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, DYNAMIC_MEM_REQUESTED_SIZE_EV, DYNAMIC_MEM_REQUESTED_SIZE_LBL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, DYNAMIC_MEM_POINTER_IN_EV, DYNAMIC_MEM_POINTER_IN_LBL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, DYNAMIC_MEM_POINTER_OUT_EV, DYNAMIC_MEM_POINTER_OUT_LBL); LET_SPACES (fd); } if (inuse[SAMPLING_MEM_INDEX]) { fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_LD_EV, SAMPLING_ADDRESS_LD_LBL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_ST_EV, SAMPLING_ADDRESS_ST_LBL); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_MEM_LEVEL_EV, SAMPLING_ADDRESS_MEM_LEVEL_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "0 other (uncacheable or I/O)\n"); fprintf (fd, "1 L1 cache\n"); fprintf (fd, "2 Line Fill Buffer (LFB)\n"); fprintf (fd, "3 L2 cache\n"); fprintf (fd, "4 L3 cache\n"); fprintf (fd, "5 Remote (1 or 2 hop) cache\n"); fprintf (fd, "6 DRAM (either local or remote)\n"); LET_SPACES(fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_MEM_HITORMISS_EV, SAMPLING_ADDRESS_MEM_HITORMISS_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "0 N/A\n"); fprintf (fd, "1 hit\n"); fprintf (fd, "2 miss\n"); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_TLB_LEVEL_EV, SAMPLING_ADDRESS_TLB_LEVEL_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "0 other (hw walker or OS fault handler)\n"); fprintf (fd, "1 L1 TLB\n"); fprintf (fd, "2 L2 TLB\n"); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_TLB_HITORMISS_EV, SAMPLING_ADDRESS_TLB_HITORMISS_LBL); fprintf (fd, "%s\n", VALUES_LABEL); fprintf (fd, "0 N/A\n"); fprintf (fd, "1 hit\n"); fprintf (fd, "2 miss\n"); LET_SPACES (fd); fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, SAMPLING_ADDRESS_REFERENCE_COST_EV, SAMPLING_ADDRESS_REFERENCE_COST_LBL); LET_SPACES (fd); Address2Info_Write_MemReferenceCaller_Labels (fd, get_option_merge_UniqueCallerID()); } /* These events are always emitted */ fprintf (fd, "%s\n", TYPE_LABEL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, PID_EV, PID_LBL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, PPID_EV, PPID_LBL); fprintf (fd, "%d %d %s\n", MISC_GRADIENT, FORK_DEPTH_EV, FORK_DEPTH_LBL); LET_SPACES (fd); }
static void HWC_PARAVER_Labels (FILE * pcfFD) { #if defined(PAPI_COUNTERS) struct fcounter_t *fcounter=NULL; #elif defined(PMAPI_COUNTERS) pm_info2_t ProcessorMetric_Info; /* On AIX pre 5.3 it was pm_info_t */ pm_groups_info_t HWCGroup_Info; pm_events2_t *evp = NULL; int j; int rc; #endif int cnt = 0; int AddedCounters = 0; CntQueue *queue; CntQueue *ptmp; #if defined(PMAPI_COUNTERS) rc = pm_initialize (PM_VERIFIED|PM_UNVERIFIED|PM_CAVEAT|PM_GET_GROUPS, &ProcessorMetric_Info, &HWCGroup_Info, PM_CURRENT); if (rc != 0) pm_error ("pm_initialize", rc); #endif queue = &CountersTraced; for (ptmp = (queue)->prev; ptmp != (queue); ptmp = ptmp->prev) { for (cnt = 0; cnt < MAX_HWC; cnt++) { if (ptmp->Traced[cnt]) { #if defined(PAPI_COUNTERS) if (!Exist_Counter(fcounter,ptmp->Events[cnt])) { unsigned position; char *description; INSERTAR_CONTADOR (fcounter, ptmp->Events[cnt]); if (Labels_LookForHWCCounter (ptmp->Events[cnt], &position, &description)) { if (AddedCounters == 0) fprintf (pcfFD, "%s\n", TYPE_LABEL); AddedCounters++; /* fprintf (pcfFD, "%d %d %s\n", 7, HWC_COUNTER_TYPE(position), description); */ fprintf (pcfFD, "%d %d %s\n", 7, HWC_COUNTER_TYPE(ptmp->Events[cnt]), description); if (get_option_merge_AbsoluteCounters()) fprintf (pcfFD, "%d %d Absolute %s\n", 7, (HWC_COUNTER_TYPE(ptmp->Events[cnt]))+HWC_DELTA_ABSOLUTE, description); } } #elif defined(PMAPI_COUNTERS) /* find pointer to the event */ for (j = 0; j < ProcessorMetric_Info.maxevents[cnt]; j++) { evp = ProcessorMetric_Info.list_events[cnt]+j; if (EvCnt == evp->event_id) break; } if (evp != NULL) { if (AddedCounters == 0) fprintf (pcfFD, "%s\n", TYPE_LABEL); fprintf (pcfFD, "%d %d %s (%s)\n", 7, HWC_COUNTER_TYPE(cnt, EvCnt), evp->short_name, evp->long_name); if (get_option_merge_AbsoluteCounters()) fprintf (pcfFD, "%d %d Absolute %s (%s)\n", 7, (HWC_COUNTER_TYPE(cnt, EvCnt))+HWC_DELTA_ABSOLUTE, evp->short_name, evp->long_name); AddedCounters++; } #endif } } } if (AddedCounters > 0) fprintf (pcfFD, "%d %d %s\n", 7, HWC_GROUP_ID, "Active hardware counter set"); LET_SPACES (pcfFD); }