00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #define READ_ONLY_COMMITS 0
00019 #define READ_WRITE_COMMITS 1
00020 #define READ_LIST_SIZES 2
00021 #define WRITE_LIST_SIZES 3
00022 #define READ_SET_SIZES 4
00023 #define WRITE_SET_SIZES 5
00024 #define NUM_STM_DESC_CALLS 6
00025 #define READ_SET_VALIDATIONS 7
00026 #define READ_ENCOUNTER_RETRIES 8
00027 #define SIGNAL_RETRIES 9
00028 #define WRITE_ACQUIRE_RETRIES 10
00029 #define READ_VALIDATION_RETRIES 11
00030 #define WRITE_BARRIERS 12
00031 #define NUM_SILENT_WRITES 13
00032 #define SILENT_WRITES_BECAME_READS 14
00033 #define WRITE_BARRIERS_OUTSIDE_TXNS 15
00034 #define WRITE_BARRIERS_FOR_STACK 16
00035 #define DUPLICATE_WRITES 17
00036 #define DUPLICATE_WRITE_CONFLICT_SET 18
00037 #define READ_BARRIERS 19
00038 #define READ_BARRIERS_OUTSIDE_TXNS 20
00039 #define READ_BARRIERS_FOR_STACK 21
00040 #define DUPLICATE_READS 22
00041 #define DUPLICATE_READ_CONFLICT_SET 23
00042 #define BLOOM_FILTER_CHECKS 24
00043 #define BLOOM_FILTER_MATCHES 25
00044 #define READ_AFTER_WRITE_MATCHES 26
00045 #define STATUS_CHECK_ACTIVE 27
00046 #define STATUS_CHECK_INACTIVE 28
00047 #define CHECKPOINTING_CALLS 29
00048 #define ALIASING_INSTANCES 30
00049 #define ADDRESS_TAKEN_VARIABLES 31
00050 #define LOCK_ACQUIRE 32
00051 #define LOCK_SKIP 33
00052 #define LOCK_RELEASE 34
00053 #define LOCK_UNDO 35
00054 #define NUM_MALLOCS 36
00055 #define NUM_FREES 37
00056 #define NUM_FREE_PRIVATE 38
00057 #define NUM_STAT_TOTALS 39
00058 #define READ_LIST_MAX_SIZE 39
00059 #define WRITE_LIST_MAX_SIZE 40
00060 #define READ_SET_MAX_SIZE 41
00061 #define WRITE_SET_MAX_SIZE 42
00062 #define MAX_NESTING 43
00063 #define NUM_STATS 44
00064
00065 #if defined(STATS)
00066 static void stm_print_raw_stats(FILE * fd,unsigned * stats) {
00067 fprintf(fd,"%8d\t%s\n",stats[0],"READ_ONLY_COMMITS");
00068 fprintf(fd,"%8d\t%s\n",stats[1],"READ_WRITE_COMMITS");
00069 fprintf(fd,"%8d\t%s\n",stats[2],"READ_LIST_SIZES");
00070 fprintf(fd,"%8d\t%s\n",stats[3],"WRITE_LIST_SIZES");
00071 fprintf(fd,"%8d\t%s\n",stats[4],"READ_SET_SIZES");
00072 fprintf(fd,"%8d\t%s\n",stats[5],"WRITE_SET_SIZES");
00073 fprintf(fd,"%8d\t%s\n",stats[6],"NUM_STM_DESC_CALLS");
00074 fprintf(fd,"%8d\t%s\n",stats[7],"READ_SET_VALIDATIONS");
00075 fprintf(fd,"%8d\t%s\n",stats[8],"READ_ENCOUNTER_RETRIES");
00076 fprintf(fd,"%8d\t%s\n",stats[9],"SIGNAL_RETRIES");
00077 fprintf(fd,"%8d\t%s\n",stats[10],"WRITE_ACQUIRE_RETRIES");
00078 fprintf(fd,"%8d\t%s\n",stats[11],"READ_VALIDATION_RETRIES");
00079 fprintf(fd,"%8d\t%s\n",stats[12],"WRITE_BARRIERS");
00080 fprintf(fd,"%8d\t%s\n",stats[13],"NUM_SILENT_WRITES");
00081 fprintf(fd,"%8d\t%s\n",stats[14],"SILENT_WRITES_BECAME_READS");
00082 fprintf(fd,"%8d\t%s\n",stats[15],"WRITE_BARRIERS_OUTSIDE_TXNS");
00083 fprintf(fd,"%8d\t%s\n",stats[16],"WRITE_BARRIERS_FOR_STACK");
00084 fprintf(fd,"%8d\t%s\n",stats[17],"DUPLICATE_WRITES");
00085 fprintf(fd,"%8d\t%s\n",stats[18],"DUPLICATE_WRITE_CONFLICT_SET");
00086 fprintf(fd,"%8d\t%s\n",stats[19],"READ_BARRIERS");
00087 fprintf(fd,"%8d\t%s\n",stats[20],"READ_BARRIERS_OUTSIDE_TXNS");
00088 fprintf(fd,"%8d\t%s\n",stats[21],"READ_BARRIERS_FOR_STACK");
00089 fprintf(fd,"%8d\t%s\n",stats[22],"DUPLICATE_READS");
00090 fprintf(fd,"%8d\t%s\n",stats[23],"DUPLICATE_READ_CONFLICT_SET");
00091 fprintf(fd,"%8d\t%s\n",stats[24],"BLOOM_FILTER_CHECKS");
00092 fprintf(fd,"%8d\t%s\n",stats[25],"BLOOM_FILTER_MATCHES");
00093 fprintf(fd,"%8d\t%s\n",stats[26],"READ_AFTER_WRITE_MATCHES");
00094 fprintf(fd,"%8d\t%s\n",stats[27],"STATUS_CHECK_ACTIVE");
00095 fprintf(fd,"%8d\t%s\n",stats[28],"STATUS_CHECK_INACTIVE");
00096 fprintf(fd,"%8d\t%s\n",stats[29],"CHECKPOINTING_CALLS");
00097 fprintf(fd,"%8d\t%s\n",stats[30],"ALIASING_INSTANCES");
00098 fprintf(fd,"%8d\t%s\n",stats[31],"ADDRESS_TAKEN_VARIABLES");
00099 fprintf(fd,"%8d\t%s\n",stats[32],"LOCK_ACQUIRE");
00100 fprintf(fd,"%8d\t%s\n",stats[33],"LOCK_SKIP");
00101 fprintf(fd,"%8d\t%s\n",stats[34],"LOCK_RELEASE");
00102 fprintf(fd,"%8d\t%s\n",stats[35],"LOCK_UNDO");
00103 fprintf(fd,"%8d\t%s\n",stats[36],"NUM_MALLOCS");
00104 fprintf(fd,"%8d\t%s\n",stats[37],"NUM_FREES");
00105 fprintf(fd,"%8d\t%s\n",stats[38],"NUM_FREE_PRIVATE");
00106 fprintf(fd,"%8d\t%s\n",stats[39],"READ_LIST_MAX_SIZE");
00107 fprintf(fd,"%8d\t%s\n",stats[40],"WRITE_LIST_MAX_SIZE");
00108 fprintf(fd,"%8d\t%s\n",stats[41],"READ_SET_MAX_SIZE");
00109 fprintf(fd,"%8d\t%s\n",stats[42],"WRITE_SET_MAX_SIZE");
00110 fprintf(fd,"%8d\t%s\n",stats[43],"MAX_NESTING");
00111 }
00112 #endif
00113