annotate libsanitizer/tsan/tsan_stat.h @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 1830386684a0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 //===-- tsan_stat.h ---------------------------------------------*- C++ -*-===//
kono
parents:
diff changeset
2 //
145
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
4 // See https://llvm.org/LICENSE.txt for license information.
1830386684a0 gcc-9.2.0
anatofuz
parents: 111
diff changeset
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
111
kono
parents:
diff changeset
6 //
kono
parents:
diff changeset
7 //===----------------------------------------------------------------------===//
kono
parents:
diff changeset
8 //
kono
parents:
diff changeset
9 // This file is a part of ThreadSanitizer (TSan), a race detector.
kono
parents:
diff changeset
10 //
kono
parents:
diff changeset
11 //===----------------------------------------------------------------------===//
kono
parents:
diff changeset
12
kono
parents:
diff changeset
13 #ifndef TSAN_STAT_H
kono
parents:
diff changeset
14 #define TSAN_STAT_H
kono
parents:
diff changeset
15
kono
parents:
diff changeset
16 namespace __tsan {
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 enum StatType {
kono
parents:
diff changeset
19 // Memory access processing related stuff.
kono
parents:
diff changeset
20 StatMop,
kono
parents:
diff changeset
21 StatMopRead,
kono
parents:
diff changeset
22 StatMopWrite,
kono
parents:
diff changeset
23 StatMop1, // These must be consequtive.
kono
parents:
diff changeset
24 StatMop2,
kono
parents:
diff changeset
25 StatMop4,
kono
parents:
diff changeset
26 StatMop8,
kono
parents:
diff changeset
27 StatMopSame,
kono
parents:
diff changeset
28 StatMopIgnored,
kono
parents:
diff changeset
29 StatMopRange,
kono
parents:
diff changeset
30 StatMopRodata,
kono
parents:
diff changeset
31 StatMopRangeRodata,
kono
parents:
diff changeset
32 StatShadowProcessed,
kono
parents:
diff changeset
33 StatShadowZero,
kono
parents:
diff changeset
34 StatShadowNonZero, // Derived.
kono
parents:
diff changeset
35 StatShadowSameSize,
kono
parents:
diff changeset
36 StatShadowIntersect,
kono
parents:
diff changeset
37 StatShadowNotIntersect,
kono
parents:
diff changeset
38 StatShadowSameThread,
kono
parents:
diff changeset
39 StatShadowAnotherThread,
kono
parents:
diff changeset
40 StatShadowReplace,
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 // Func processing.
kono
parents:
diff changeset
43 StatFuncEnter,
kono
parents:
diff changeset
44 StatFuncExit,
kono
parents:
diff changeset
45
kono
parents:
diff changeset
46 // Trace processing.
kono
parents:
diff changeset
47 StatEvents,
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 // Threads.
kono
parents:
diff changeset
50 StatThreadCreate,
kono
parents:
diff changeset
51 StatThreadFinish,
kono
parents:
diff changeset
52 StatThreadReuse,
kono
parents:
diff changeset
53 StatThreadMaxTid,
kono
parents:
diff changeset
54 StatThreadMaxAlive,
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 // Mutexes.
kono
parents:
diff changeset
57 StatMutexCreate,
kono
parents:
diff changeset
58 StatMutexDestroy,
kono
parents:
diff changeset
59 StatMutexLock,
kono
parents:
diff changeset
60 StatMutexUnlock,
kono
parents:
diff changeset
61 StatMutexRecLock,
kono
parents:
diff changeset
62 StatMutexRecUnlock,
kono
parents:
diff changeset
63 StatMutexReadLock,
kono
parents:
diff changeset
64 StatMutexReadUnlock,
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 // Synchronization.
kono
parents:
diff changeset
67 StatSyncCreated,
kono
parents:
diff changeset
68 StatSyncDestroyed,
kono
parents:
diff changeset
69 StatSyncAcquire,
kono
parents:
diff changeset
70 StatSyncRelease,
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 // Clocks - acquire.
kono
parents:
diff changeset
73 StatClockAcquire,
kono
parents:
diff changeset
74 StatClockAcquireEmpty,
kono
parents:
diff changeset
75 StatClockAcquireFastRelease,
kono
parents:
diff changeset
76 StatClockAcquireFull,
kono
parents:
diff changeset
77 StatClockAcquiredSomething,
kono
parents:
diff changeset
78 // Clocks - release.
kono
parents:
diff changeset
79 StatClockRelease,
kono
parents:
diff changeset
80 StatClockReleaseResize,
kono
parents:
diff changeset
81 StatClockReleaseFast,
kono
parents:
diff changeset
82 StatClockReleaseSlow,
kono
parents:
diff changeset
83 StatClockReleaseFull,
kono
parents:
diff changeset
84 StatClockReleaseAcquired,
kono
parents:
diff changeset
85 StatClockReleaseClearTail,
kono
parents:
diff changeset
86 // Clocks - release store.
kono
parents:
diff changeset
87 StatClockStore,
kono
parents:
diff changeset
88 StatClockStoreResize,
kono
parents:
diff changeset
89 StatClockStoreFast,
kono
parents:
diff changeset
90 StatClockStoreFull,
kono
parents:
diff changeset
91 StatClockStoreTail,
kono
parents:
diff changeset
92 // Clocks - acquire-release.
kono
parents:
diff changeset
93 StatClockAcquireRelease,
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 // Atomics.
kono
parents:
diff changeset
96 StatAtomic,
kono
parents:
diff changeset
97 StatAtomicLoad,
kono
parents:
diff changeset
98 StatAtomicStore,
kono
parents:
diff changeset
99 StatAtomicExchange,
kono
parents:
diff changeset
100 StatAtomicFetchAdd,
kono
parents:
diff changeset
101 StatAtomicFetchSub,
kono
parents:
diff changeset
102 StatAtomicFetchAnd,
kono
parents:
diff changeset
103 StatAtomicFetchOr,
kono
parents:
diff changeset
104 StatAtomicFetchXor,
kono
parents:
diff changeset
105 StatAtomicFetchNand,
kono
parents:
diff changeset
106 StatAtomicCAS,
kono
parents:
diff changeset
107 StatAtomicFence,
kono
parents:
diff changeset
108 StatAtomicRelaxed,
kono
parents:
diff changeset
109 StatAtomicConsume,
kono
parents:
diff changeset
110 StatAtomicAcquire,
kono
parents:
diff changeset
111 StatAtomicRelease,
kono
parents:
diff changeset
112 StatAtomicAcq_Rel,
kono
parents:
diff changeset
113 StatAtomicSeq_Cst,
kono
parents:
diff changeset
114 StatAtomic1,
kono
parents:
diff changeset
115 StatAtomic2,
kono
parents:
diff changeset
116 StatAtomic4,
kono
parents:
diff changeset
117 StatAtomic8,
kono
parents:
diff changeset
118 StatAtomic16,
kono
parents:
diff changeset
119
kono
parents:
diff changeset
120 // Dynamic annotations.
kono
parents:
diff changeset
121 StatAnnotation,
kono
parents:
diff changeset
122 StatAnnotateHappensBefore,
kono
parents:
diff changeset
123 StatAnnotateHappensAfter,
kono
parents:
diff changeset
124 StatAnnotateCondVarSignal,
kono
parents:
diff changeset
125 StatAnnotateCondVarSignalAll,
kono
parents:
diff changeset
126 StatAnnotateMutexIsNotPHB,
kono
parents:
diff changeset
127 StatAnnotateCondVarWait,
kono
parents:
diff changeset
128 StatAnnotateRWLockCreate,
kono
parents:
diff changeset
129 StatAnnotateRWLockCreateStatic,
kono
parents:
diff changeset
130 StatAnnotateRWLockDestroy,
kono
parents:
diff changeset
131 StatAnnotateRWLockAcquired,
kono
parents:
diff changeset
132 StatAnnotateRWLockReleased,
kono
parents:
diff changeset
133 StatAnnotateTraceMemory,
kono
parents:
diff changeset
134 StatAnnotateFlushState,
kono
parents:
diff changeset
135 StatAnnotateNewMemory,
kono
parents:
diff changeset
136 StatAnnotateNoOp,
kono
parents:
diff changeset
137 StatAnnotateFlushExpectedRaces,
kono
parents:
diff changeset
138 StatAnnotateEnableRaceDetection,
kono
parents:
diff changeset
139 StatAnnotateMutexIsUsedAsCondVar,
kono
parents:
diff changeset
140 StatAnnotatePCQGet,
kono
parents:
diff changeset
141 StatAnnotatePCQPut,
kono
parents:
diff changeset
142 StatAnnotatePCQDestroy,
kono
parents:
diff changeset
143 StatAnnotatePCQCreate,
kono
parents:
diff changeset
144 StatAnnotateExpectRace,
kono
parents:
diff changeset
145 StatAnnotateBenignRaceSized,
kono
parents:
diff changeset
146 StatAnnotateBenignRace,
kono
parents:
diff changeset
147 StatAnnotateIgnoreReadsBegin,
kono
parents:
diff changeset
148 StatAnnotateIgnoreReadsEnd,
kono
parents:
diff changeset
149 StatAnnotateIgnoreWritesBegin,
kono
parents:
diff changeset
150 StatAnnotateIgnoreWritesEnd,
kono
parents:
diff changeset
151 StatAnnotateIgnoreSyncBegin,
kono
parents:
diff changeset
152 StatAnnotateIgnoreSyncEnd,
kono
parents:
diff changeset
153 StatAnnotatePublishMemoryRange,
kono
parents:
diff changeset
154 StatAnnotateUnpublishMemoryRange,
kono
parents:
diff changeset
155 StatAnnotateThreadName,
kono
parents:
diff changeset
156 Stat__tsan_mutex_create,
kono
parents:
diff changeset
157 Stat__tsan_mutex_destroy,
kono
parents:
diff changeset
158 Stat__tsan_mutex_pre_lock,
kono
parents:
diff changeset
159 Stat__tsan_mutex_post_lock,
kono
parents:
diff changeset
160 Stat__tsan_mutex_pre_unlock,
kono
parents:
diff changeset
161 Stat__tsan_mutex_post_unlock,
kono
parents:
diff changeset
162 Stat__tsan_mutex_pre_signal,
kono
parents:
diff changeset
163 Stat__tsan_mutex_post_signal,
kono
parents:
diff changeset
164 Stat__tsan_mutex_pre_divert,
kono
parents:
diff changeset
165 Stat__tsan_mutex_post_divert,
kono
parents:
diff changeset
166
kono
parents:
diff changeset
167 // Internal mutex contentionz.
kono
parents:
diff changeset
168 StatMtxTotal,
kono
parents:
diff changeset
169 StatMtxTrace,
kono
parents:
diff changeset
170 StatMtxThreads,
kono
parents:
diff changeset
171 StatMtxReport,
kono
parents:
diff changeset
172 StatMtxSyncVar,
kono
parents:
diff changeset
173 StatMtxSyncTab,
kono
parents:
diff changeset
174 StatMtxSlab,
kono
parents:
diff changeset
175 StatMtxAnnotations,
kono
parents:
diff changeset
176 StatMtxAtExit,
kono
parents:
diff changeset
177 StatMtxMBlock,
kono
parents:
diff changeset
178 StatMtxDeadlockDetector,
kono
parents:
diff changeset
179 StatMtxFired,
kono
parents:
diff changeset
180 StatMtxRacy,
kono
parents:
diff changeset
181 StatMtxFD,
kono
parents:
diff changeset
182 StatMtxGlobalProc,
kono
parents:
diff changeset
183
kono
parents:
diff changeset
184 // This must be the last.
kono
parents:
diff changeset
185 StatCnt
kono
parents:
diff changeset
186 };
kono
parents:
diff changeset
187
kono
parents:
diff changeset
188 } // namespace __tsan
kono
parents:
diff changeset
189
kono
parents:
diff changeset
190 #endif // TSAN_STAT_H