annotate probes.h @ 205:cb888346c3e0

Changed include paths, but version still does not work because of accidental merge
author Merten Sach <msach@mailbox.tu-berlin.de>
date Fri, 17 Feb 2012 18:28:59 +0100
parents c1784868dcea
children
rev   line source
Me@178 1 /*
Me@178 2 * Copyright 2009 OpenSourceStewardshipFoundation.org
Me@178 3 * Licensed under GNU General Public License version 2
Me@178 4 *
Me@178 5 * Author: seanhalle@yahoo.com
Me@178 6 *
Me@178 7 */
Me@178 8
Me@178 9 #ifndef _PROBES_H
Me@178 10 #define _PROBES_H
Me@178 11 #define _GNU_SOURCE
Me@178 12
Me@178 13 #include "VMS_primitive_data_types.h"
Me@178 14
Me@178 15 #include <sys/time.h>
Me@178 16
Me@200 17 /*Note on order of include files:
Me@200 18 * This file relies on #defines that appear in other files..
Me@200 19 */
Me@178 20
Me@178 21
Me@178 22 //typedef struct _IntervalProbe IntervalProbe; //in VMS.h
Me@178 23
Me@178 24 struct _IntervalProbe
Me@178 25 {
Me@178 26 char *nameStr;
Me@178 27 int32 probeID;
Me@178 28
Me@178 29 int32 schedChoiceWasRecorded;
Me@178 30 int32 coreNum;
Me@178 31 int32 procrID;
Me@178 32 float64 procrCreateSecs;
Me@178 33
Me@178 34 #ifdef STATS__USE_TSC_PROBES
Me@178 35 TSCount startStamp;
Me@178 36 TSCount endStamp;
Me@178 37 #else
Me@178 38 struct timeval startStamp;
Me@178 39 struct timeval endStamp;
Me@178 40 #endif
Me@178 41 float64 startSecs;
Me@178 42 float64 endSecs;
Me@178 43 float64 interval;
Me@178 44 DblHist *hist;//if NULL, then is single interval probe
Me@178 45 };
Me@178 46
Me@178 47
Me@178 48
Me@178 49 //======================== Probes =============================
Me@178 50 //
Me@178 51 // Use macros to allow turning probes off with a #define switch
Me@178 52 #ifdef STATS__ENABLE_PROBES
Me@178 53 int32
Me@200 54 VMS_impl__record_time_point_into_new_probe( char *nameStr,SlaveVP *animPr);
Me@178 55 #define VMS__record_time_point_into_new_probe( nameStr, animPr ) \
Me@178 56 VMS_impl__record_time_point_in_new_probe( nameStr, animPr )
Me@178 57
Me@178 58 int32
Me@178 59 VMS_ext_impl__record_time_point_into_new_probe( char *nameStr );
Me@178 60 #define VMS_ext__record_time_point_into_new_probe( nameStr ) \
Me@178 61 VMS_ext_impl__record_time_point_into_new_probe( nameStr )
Me@178 62
Me@178 63
Me@178 64 int32
Me@200 65 VMS_impl__create_single_interval_probe( char *nameStr, SlaveVP *animPr );
Me@178 66 #define VMS__create_single_interval_probe( nameStr, animPr ) \
Me@178 67 VMS_impl__create_single_interval_probe( nameStr, animPr )
Me@178 68
Me@178 69
Me@178 70 int32
Me@178 71 VMS_impl__create_histogram_probe( int32 numBins, float64 startValue,
Me@200 72 float64 binWidth, char *nameStr, SlaveVP *animPr );
Me@178 73 #define VMS__create_histogram_probe( numBins, startValue, \
Me@178 74 binWidth, nameStr, animPr ) \
Me@178 75 VMS_impl__create_histogram_probe( numBins, startValue, \
Me@178 76 binWidth, nameStr, animPr )
Me@178 77 void
Me@178 78 VMS_impl__free_probe( IntervalProbe *probe );
Me@178 79 #define VMS__free_probe( probe ) \
Me@178 80 VMS_impl__free_probe( probe )
Me@178 81
Me@178 82 void
Me@200 83 VMS_impl__index_probe_by_its_name( int32 probeID, SlaveVP *animPr );
Me@178 84 #define VMS__index_probe_by_its_name( probeID, animPr ) \
Me@178 85 VMS_impl__index_probe_by_its_name( probeID, animPr )
Me@178 86
Me@178 87 IntervalProbe *
Me@200 88 VMS_impl__get_probe_by_name( char *probeName, SlaveVP *animPr );
Me@178 89 #define VMS__get_probe_by_name( probeID, animPr ) \
Me@178 90 VMS_impl__get_probe_by_name( probeName, animPr )
Me@178 91
Me@178 92 void
Me@200 93 VMS_impl__record_sched_choice_into_probe( int32 probeID, SlaveVP *animPr );
Me@178 94 #define VMS__record_sched_choice_into_probe( probeID, animPr ) \
Me@178 95 VMS_impl__record_sched_choice_into_probe( probeID, animPr )
Me@178 96
Me@178 97 void
Me@178 98 VMS_impl__record_interval_start_in_probe( int32 probeID );
Me@178 99 #define VMS__record_interval_start_in_probe( probeID ) \
Me@178 100 VMS_impl__record_interval_start_in_probe( probeID )
Me@178 101
Me@178 102 void
Me@178 103 VMS_impl__record_interval_end_in_probe( int32 probeID );
Me@178 104 #define VMS__record_interval_end_in_probe( probeID ) \
Me@178 105 VMS_impl__record_interval_end_in_probe( probeID )
Me@178 106
Me@178 107 void
Me@178 108 VMS_impl__print_stats_of_probe( int32 probeID );
Me@178 109 #define VMS__print_stats_of_probe( probeID ) \
Me@178 110 VMS_impl__print_stats_of_probe( probeID )
Me@178 111
Me@178 112 void
Me@178 113 VMS_impl__print_stats_of_all_probes();
Me@178 114 #define VMS__print_stats_of_all_probes() \
Me@178 115 VMS_impl__print_stats_of_all_probes()
Me@178 116
Me@178 117
Me@178 118 #else
Me@178 119 int32
Me@200 120 VMS_impl__record_time_point_into_new_probe( char *nameStr,SlaveVP *animPr);
Me@178 121 #define VMS__record_time_point_into_new_probe( nameStr, animPr ) \
Me@178 122 0 /* do nothing */
Me@178 123
Me@178 124 int32
Me@178 125 VMS_ext_impl__record_time_point_into_new_probe( char *nameStr );
Me@178 126 #define VMS_ext__record_time_point_into_new_probe( nameStr ) \
Me@178 127 0 /* do nothing */
Me@178 128
Me@178 129
Me@178 130 int32
Me@200 131 VMS_impl__create_single_interval_probe( char *nameStr, SlaveVP *animPr );
Me@178 132 #define VMS__create_single_interval_probe( nameStr, animPr ) \
Me@178 133 0 /* do nothing */
Me@178 134
Me@178 135
Me@178 136 int32
Me@178 137 VMS_impl__create_histogram_probe( int32 numBins, float64 startValue,
Me@200 138 float64 binWidth, char *nameStr, SlaveVP *animPr );
Me@178 139 #define VMS__create_histogram_probe( numBins, startValue, \
Me@178 140 binWidth, nameStr, animPr ) \
Me@178 141 0 /* do nothing */
Me@178 142
Me@178 143 void
Me@200 144 VMS_impl__index_probe_by_its_name( int32 probeID, SlaveVP *animPr );
Me@178 145 #define VMS__index_probe_by_its_name( probeID, animPr ) \
Me@178 146 /* do nothing */
Me@178 147
Me@178 148 IntervalProbe *
Me@200 149 VMS_impl__get_probe_by_name( char *probeName, SlaveVP *animPr );
Me@178 150 #define VMS__get_probe_by_name( probeID, animPr ) \
Me@178 151 NULL /* do nothing */
Me@178 152
Me@178 153 void
Me@200 154 VMS_impl__record_sched_choice_into_probe( int32 probeID, SlaveVP *animPr );
Me@178 155 #define VMS__record_sched_choice_into_probe( probeID, animPr ) \
Me@178 156 /* do nothing */
Me@178 157
Me@178 158 void
Me@178 159 VMS_impl__record_interval_start_in_probe( int32 probeID );
Me@178 160 #define VMS__record_interval_start_in_probe( probeID ) \
Me@178 161 /* do nothing */
Me@178 162
Me@178 163 void
Me@178 164 VMS_impl__record_interval_end_in_probe( int32 probeID );
Me@178 165 #define VMS__record_interval_end_in_probe( probeID ) \
Me@178 166 /* do nothing */
Me@178 167
Me@178 168 inline void doNothing();
Me@178 169 void
Me@178 170 VMS_impl__print_stats_of_probe( int32 probeID );
Me@178 171 #define VMS__print_stats_of_probe( probeID ) \
Me@178 172 doNothing/* do nothing */
Me@178 173
Me@178 174 void
Me@178 175 VMS_impl__print_stats_of_all_probes();
Me@178 176 #define VMS__print_stats_of_all_probes \
Me@178 177 doNothing/* do nothing */
Me@178 178
Me@178 179 #endif /* defined STATS__ENABLE_PROBES */
Me@178 180
Me@178 181 #endif /* _PROBES_H */
Me@178 182