Source file
src/runtime/lockrank.go
Documentation: runtime
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 package runtime
26
27 type lockRank int
28
29
30
31
32 const (
33 lockRankDummy lockRank = iota
34
35
36 lockRankSysmon
37 lockRankScavenge
38 lockRankForcegc
39 lockRankSweepWaiters
40 lockRankAssistQueue
41 lockRankCpuprof
42 lockRankSweep
43
44 lockRankPollDesc
45 lockRankSched
46 lockRankDeadlock
47 lockRankAllg
48 lockRankAllp
49
50 lockRankTimers
51 lockRankItab
52 lockRankReflectOffs
53 lockRankHchan
54 lockRankTraceBuf
55 lockRankFin
56 lockRankNotifyList
57 lockRankTraceStrings
58 lockRankMspanSpecial
59 lockRankProfInsert
60 lockRankProfBlock
61 lockRankProfMemActive
62 lockRankProfMemFuture
63 lockRankGcBitsArenas
64 lockRankRoot
65 lockRankTrace
66 lockRankTraceStackTab
67 lockRankNetpollInit
68
69 lockRankRwmutexW
70 lockRankRwmutexR
71
72 lockRankSpanSetSpine
73 lockRankGscan
74 lockRankStackpool
75 lockRankStackLarge
76 lockRankDefer
77 lockRankSudog
78
79
80 lockRankWbufSpans
81 lockRankMheap
82 lockRankMheapSpecial
83
84
85 lockRankGlobalAlloc
86 lockRankPageAllocScav
87
88
89 lockRankGFree
90
91
92
93
94
95
96
97 lockRankHchanLeaf
98 lockRankPanic
99
100
101
102 lockRankNewmHandoff
103 lockRankDebugPtrmask
104 lockRankFaketimeState
105 lockRankTicks
106 lockRankRaceFini
107 lockRankPollCache
108 lockRankDebug
109 )
110
111
112
113 const lockRankLeafRank lockRank = 1000
114
115
116 var lockNames = []string{
117 lockRankDummy: "",
118
119 lockRankSysmon: "sysmon",
120 lockRankScavenge: "scavenge",
121 lockRankForcegc: "forcegc",
122 lockRankSweepWaiters: "sweepWaiters",
123 lockRankAssistQueue: "assistQueue",
124 lockRankCpuprof: "cpuprof",
125 lockRankSweep: "sweep",
126
127 lockRankPollDesc: "pollDesc",
128 lockRankSched: "sched",
129 lockRankDeadlock: "deadlock",
130 lockRankAllg: "allg",
131 lockRankAllp: "allp",
132
133 lockRankTimers: "timers",
134 lockRankItab: "itab",
135 lockRankReflectOffs: "reflectOffs",
136
137 lockRankHchan: "hchan",
138 lockRankTraceBuf: "traceBuf",
139 lockRankFin: "fin",
140 lockRankNotifyList: "notifyList",
141 lockRankTraceStrings: "traceStrings",
142 lockRankMspanSpecial: "mspanSpecial",
143 lockRankProfInsert: "profInsert",
144 lockRankProfBlock: "profBlock",
145 lockRankProfMemActive: "profMemActive",
146 lockRankProfMemFuture: "profMemFuture",
147 lockRankGcBitsArenas: "gcBitsArenas",
148 lockRankRoot: "root",
149 lockRankTrace: "trace",
150 lockRankTraceStackTab: "traceStackTab",
151 lockRankNetpollInit: "netpollInit",
152
153 lockRankRwmutexW: "rwmutexW",
154 lockRankRwmutexR: "rwmutexR",
155
156 lockRankSpanSetSpine: "spanSetSpine",
157 lockRankGscan: "gscan",
158 lockRankStackpool: "stackpool",
159 lockRankStackLarge: "stackLarge",
160 lockRankDefer: "defer",
161 lockRankSudog: "sudog",
162
163 lockRankWbufSpans: "wbufSpans",
164 lockRankMheap: "mheap",
165 lockRankMheapSpecial: "mheapSpecial",
166
167 lockRankGlobalAlloc: "globalAlloc.mutex",
168 lockRankPageAllocScav: "pageAlloc.scav.lock",
169
170 lockRankGFree: "gFree",
171 lockRankHchanLeaf: "hchanLeaf",
172 lockRankPanic: "panic",
173
174 lockRankNewmHandoff: "newmHandoff.lock",
175 lockRankDebugPtrmask: "debugPtrmask.lock",
176 lockRankFaketimeState: "faketimeState.lock",
177 lockRankTicks: "ticks.lock",
178 lockRankRaceFini: "raceFiniLock",
179 lockRankPollCache: "pollCache.lock",
180 lockRankDebug: "debugLock",
181 }
182
183 func (rank lockRank) String() string {
184 if rank == 0 {
185 return "UNKNOWN"
186 }
187 if rank == lockRankLeafRank {
188 return "LEAF"
189 }
190 return lockNames[rank]
191 }
192
193
194
195
196
197
198
199
200
201 var lockPartialOrder [][]lockRank = [][]lockRank{
202 lockRankDummy: {},
203 lockRankSysmon: {},
204 lockRankScavenge: {lockRankSysmon},
205 lockRankForcegc: {lockRankSysmon},
206 lockRankSweepWaiters: {},
207 lockRankAssistQueue: {},
208 lockRankCpuprof: {},
209 lockRankSweep: {},
210 lockRankPollDesc: {},
211 lockRankSched: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc},
212 lockRankDeadlock: {lockRankDeadlock},
213 lockRankAllg: {lockRankSysmon, lockRankSched},
214 lockRankAllp: {lockRankSysmon, lockRankSched},
215 lockRankTimers: {lockRankSysmon, lockRankScavenge, lockRankPollDesc, lockRankSched, lockRankAllp, lockRankTimers},
216 lockRankItab: {},
217 lockRankReflectOffs: {lockRankItab},
218 lockRankHchan: {lockRankScavenge, lockRankSweep, lockRankHchan},
219 lockRankTraceBuf: {lockRankSysmon, lockRankScavenge},
220 lockRankFin: {lockRankSysmon, lockRankScavenge, lockRankSched, lockRankAllg, lockRankTimers, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf},
221 lockRankNotifyList: {},
222 lockRankTraceStrings: {lockRankTraceBuf},
223 lockRankMspanSpecial: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
224 lockRankProfInsert: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
225 lockRankProfBlock: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
226 lockRankProfMemActive: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
227 lockRankProfMemFuture: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings, lockRankProfMemActive},
228 lockRankGcBitsArenas: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
229 lockRankRoot: {},
230 lockRankTrace: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankAssistQueue, lockRankSweep, lockRankSched, lockRankHchan, lockRankTraceBuf, lockRankTraceStrings, lockRankRoot},
231 lockRankTraceStackTab: {lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankSched, lockRankAllg, lockRankTimers, lockRankHchan, lockRankTraceBuf, lockRankFin, lockRankNotifyList, lockRankTraceStrings, lockRankRoot, lockRankTrace},
232 lockRankNetpollInit: {lockRankTimers},
233
234 lockRankRwmutexW: {},
235 lockRankRwmutexR: {lockRankSysmon, lockRankRwmutexW},
236
237 lockRankSpanSetSpine: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
238 lockRankGscan: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankFin, lockRankNotifyList, lockRankTraceStrings, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGcBitsArenas, lockRankRoot, lockRankTrace, lockRankTraceStackTab, lockRankNetpollInit, lockRankSpanSetSpine},
239 lockRankStackpool: {lockRankSysmon, lockRankScavenge, lockRankSweepWaiters, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankFin, lockRankNotifyList, lockRankTraceStrings, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGcBitsArenas, lockRankRoot, lockRankTrace, lockRankTraceStackTab, lockRankNetpollInit, lockRankRwmutexR, lockRankSpanSetSpine, lockRankGscan},
240 lockRankStackLarge: {lockRankSysmon, lockRankAssistQueue, lockRankSched, lockRankItab, lockRankHchan, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGcBitsArenas, lockRankRoot, lockRankSpanSetSpine, lockRankGscan},
241 lockRankDefer: {},
242 lockRankSudog: {lockRankHchan, lockRankNotifyList},
243 lockRankWbufSpans: {lockRankSysmon, lockRankScavenge, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankAllg, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankFin, lockRankNotifyList, lockRankTraceStrings, lockRankMspanSpecial, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankRoot, lockRankTrace, lockRankGscan, lockRankDefer, lockRankSudog},
244 lockRankMheap: {lockRankSysmon, lockRankScavenge, lockRankSweepWaiters, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankFin, lockRankNotifyList, lockRankTraceStrings, lockRankMspanSpecial, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGcBitsArenas, lockRankRoot, lockRankTrace, lockRankSpanSetSpine, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankDefer, lockRankSudog, lockRankWbufSpans},
245 lockRankMheapSpecial: {lockRankSysmon, lockRankScavenge, lockRankAssistQueue, lockRankCpuprof, lockRankSweep, lockRankPollDesc, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankItab, lockRankReflectOffs, lockRankHchan, lockRankTraceBuf, lockRankNotifyList, lockRankTraceStrings},
246 lockRankGlobalAlloc: {lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankSpanSetSpine, lockRankMheap, lockRankMheapSpecial},
247 lockRankPageAllocScav: {lockRankMheap},
248
249 lockRankGFree: {lockRankSched},
250 lockRankHchanLeaf: {lockRankGscan, lockRankHchanLeaf},
251 lockRankPanic: {lockRankDeadlock},
252
253 lockRankNewmHandoff: {},
254 lockRankDebugPtrmask: {},
255 lockRankFaketimeState: {},
256 lockRankTicks: {},
257 lockRankRaceFini: {},
258 lockRankPollCache: {},
259 lockRankDebug: {},
260 }
261
View as plain text