github.com/twelsh-aw/go/src@v0.0.0-20230516233729-a56fe86a7c81/runtime/lockrank.go (about) 1 // Code generated by mklockrank.go; DO NOT EDIT. 2 3 package runtime 4 5 type lockRank int 6 7 // Constants representing the ranks of all non-leaf runtime locks, in rank order. 8 // Locks with lower rank must be taken before locks with higher rank, 9 // in addition to satisfying the partial order in lockPartialOrder. 10 // A few ranks allow self-cycles, which are specified in lockPartialOrder. 11 const ( 12 lockRankUnknown lockRank = iota 13 14 lockRankSysmon 15 lockRankScavenge 16 lockRankForcegc 17 lockRankDefer 18 lockRankSweepWaiters 19 lockRankAssistQueue 20 lockRankSweep 21 lockRankPollDesc 22 lockRankCpuprof 23 lockRankSched 24 lockRankAllg 25 lockRankAllp 26 lockRankTimers 27 lockRankNetpollInit 28 lockRankHchan 29 lockRankNotifyList 30 lockRankSudog 31 lockRankRwmutexW 32 lockRankRwmutexR 33 lockRankRoot 34 lockRankItab 35 lockRankReflectOffs 36 lockRankUserArenaState 37 // TRACEGLOBAL 38 lockRankTraceBuf 39 lockRankTraceStrings 40 // MALLOC 41 lockRankFin 42 lockRankGcBitsArenas 43 lockRankMheapSpecial 44 lockRankMspanSpecial 45 lockRankSpanSetSpine 46 // MPROF 47 lockRankProfInsert 48 lockRankProfBlock 49 lockRankProfMemActive 50 lockRankProfMemFuture 51 // STACKGROW 52 lockRankGscan 53 lockRankStackpool 54 lockRankStackLarge 55 lockRankHchanLeaf 56 // WB 57 lockRankWbufSpans 58 lockRankMheap 59 lockRankGlobalAlloc 60 // TRACE 61 lockRankTrace 62 lockRankTraceStackTab 63 lockRankPanic 64 lockRankDeadlock 65 lockRankRaceFini 66 ) 67 68 // lockRankLeafRank is the rank of lock that does not have a declared rank, 69 // and hence is a leaf lock. 70 const lockRankLeafRank lockRank = 1000 71 72 // lockNames gives the names associated with each of the above ranks. 73 var lockNames = []string{ 74 lockRankSysmon: "sysmon", 75 lockRankScavenge: "scavenge", 76 lockRankForcegc: "forcegc", 77 lockRankDefer: "defer", 78 lockRankSweepWaiters: "sweepWaiters", 79 lockRankAssistQueue: "assistQueue", 80 lockRankSweep: "sweep", 81 lockRankPollDesc: "pollDesc", 82 lockRankCpuprof: "cpuprof", 83 lockRankSched: "sched", 84 lockRankAllg: "allg", 85 lockRankAllp: "allp", 86 lockRankTimers: "timers", 87 lockRankNetpollInit: "netpollInit", 88 lockRankHchan: "hchan", 89 lockRankNotifyList: "notifyList", 90 lockRankSudog: "sudog", 91 lockRankRwmutexW: "rwmutexW", 92 lockRankRwmutexR: "rwmutexR", 93 lockRankRoot: "root", 94 lockRankItab: "itab", 95 lockRankReflectOffs: "reflectOffs", 96 lockRankUserArenaState: "userArenaState", 97 lockRankTraceBuf: "traceBuf", 98 lockRankTraceStrings: "traceStrings", 99 lockRankFin: "fin", 100 lockRankGcBitsArenas: "gcBitsArenas", 101 lockRankMheapSpecial: "mheapSpecial", 102 lockRankMspanSpecial: "mspanSpecial", 103 lockRankSpanSetSpine: "spanSetSpine", 104 lockRankProfInsert: "profInsert", 105 lockRankProfBlock: "profBlock", 106 lockRankProfMemActive: "profMemActive", 107 lockRankProfMemFuture: "profMemFuture", 108 lockRankGscan: "gscan", 109 lockRankStackpool: "stackpool", 110 lockRankStackLarge: "stackLarge", 111 lockRankHchanLeaf: "hchanLeaf", 112 lockRankWbufSpans: "wbufSpans", 113 lockRankMheap: "mheap", 114 lockRankGlobalAlloc: "globalAlloc", 115 lockRankTrace: "trace", 116 lockRankTraceStackTab: "traceStackTab", 117 lockRankPanic: "panic", 118 lockRankDeadlock: "deadlock", 119 lockRankRaceFini: "raceFini", 120 } 121 122 func (rank lockRank) String() string { 123 if rank == 0 { 124 return "UNKNOWN" 125 } 126 if rank == lockRankLeafRank { 127 return "LEAF" 128 } 129 if rank < 0 || int(rank) >= len(lockNames) { 130 return "BAD RANK" 131 } 132 return lockNames[rank] 133 } 134 135 // lockPartialOrder is the transitive closure of the lock rank graph. 136 // An entry for rank X lists all of the ranks that can already be held 137 // when rank X is acquired. 138 // 139 // Lock ranks that allow self-cycles list themselves. 140 var lockPartialOrder [][]lockRank = [][]lockRank{ 141 lockRankSysmon: {}, 142 lockRankScavenge: {lockRankSysmon}, 143 lockRankForcegc: {lockRankSysmon}, 144 lockRankDefer: {}, 145 lockRankSweepWaiters: {}, 146 lockRankAssistQueue: {}, 147 lockRankSweep: {}, 148 lockRankPollDesc: {}, 149 lockRankCpuprof: {}, 150 lockRankSched: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof}, 151 lockRankAllg: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched}, 152 lockRankAllp: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched}, 153 lockRankTimers: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers}, 154 lockRankNetpollInit: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers}, 155 lockRankHchan: {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan}, 156 lockRankNotifyList: {}, 157 lockRankSudog: {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan, lockRankNotifyList}, 158 lockRankRwmutexW: {}, 159 lockRankRwmutexR: {lockRankSysmon, lockRankRwmutexW}, 160 lockRankRoot: {}, 161 lockRankItab: {}, 162 lockRankReflectOffs: {lockRankItab}, 163 lockRankUserArenaState: {}, 164 lockRankTraceBuf: {lockRankSysmon, lockRankScavenge}, 165 lockRankTraceStrings: {lockRankSysmon, lockRankScavenge, lockRankTraceBuf}, 166 lockRankFin: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 167 lockRankGcBitsArenas: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 168 lockRankMheapSpecial: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 169 lockRankMspanSpecial: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 170 lockRankSpanSetSpine: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 171 lockRankProfInsert: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 172 lockRankProfBlock: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 173 lockRankProfMemActive: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 174 lockRankProfMemFuture: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankProfMemActive}, 175 lockRankGscan: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture}, 176 lockRankStackpool: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan}, 177 lockRankStackLarge: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan}, 178 lockRankHchanLeaf: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankHchanLeaf}, 179 lockRankWbufSpans: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankMspanSpecial, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan}, 180 lockRankMheap: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankMspanSpecial, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans}, 181 lockRankGlobalAlloc: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankMheapSpecial, lockRankMspanSpecial, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap}, 182 lockRankTrace: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankMspanSpecial, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap}, 183 lockRankTraceStackTab: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankDefer, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankNetpollInit, lockRankHchan, lockRankNotifyList, lockRankSudog, lockRankRwmutexW, lockRankRwmutexR, lockRankRoot, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankFin, lockRankGcBitsArenas, lockRankMspanSpecial, lockRankSpanSetSpine, lockRankProfInsert, lockRankProfBlock, lockRankProfMemActive, lockRankProfMemFuture, lockRankGscan, lockRankStackpool, lockRankStackLarge, lockRankWbufSpans, lockRankMheap, lockRankTrace}, 184 lockRankPanic: {}, 185 lockRankDeadlock: {lockRankPanic, lockRankDeadlock}, 186 lockRankRaceFini: {lockRankPanic}, 187 }