github.com/mtsmfm/go/src@v0.0.0-20221020090648-44bdcb9f8fde/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 ) 66 67 // lockRankLeafRank is the rank of lock that does not have a declared rank, 68 // and hence is a leaf lock. 69 const lockRankLeafRank lockRank = 1000 70 71 // lockNames gives the names associated with each of the above ranks. 72 var lockNames = []string{ 73 lockRankSysmon: "sysmon", 74 lockRankScavenge: "scavenge", 75 lockRankForcegc: "forcegc", 76 lockRankDefer: "defer", 77 lockRankSweepWaiters: "sweepWaiters", 78 lockRankAssistQueue: "assistQueue", 79 lockRankSweep: "sweep", 80 lockRankPollDesc: "pollDesc", 81 lockRankCpuprof: "cpuprof", 82 lockRankSched: "sched", 83 lockRankAllg: "allg", 84 lockRankAllp: "allp", 85 lockRankTimers: "timers", 86 lockRankNetpollInit: "netpollInit", 87 lockRankHchan: "hchan", 88 lockRankNotifyList: "notifyList", 89 lockRankSudog: "sudog", 90 lockRankRwmutexW: "rwmutexW", 91 lockRankRwmutexR: "rwmutexR", 92 lockRankRoot: "root", 93 lockRankItab: "itab", 94 lockRankReflectOffs: "reflectOffs", 95 lockRankUserArenaState: "userArenaState", 96 lockRankTraceBuf: "traceBuf", 97 lockRankTraceStrings: "traceStrings", 98 lockRankFin: "fin", 99 lockRankGcBitsArenas: "gcBitsArenas", 100 lockRankMheapSpecial: "mheapSpecial", 101 lockRankMspanSpecial: "mspanSpecial", 102 lockRankSpanSetSpine: "spanSetSpine", 103 lockRankProfInsert: "profInsert", 104 lockRankProfBlock: "profBlock", 105 lockRankProfMemActive: "profMemActive", 106 lockRankProfMemFuture: "profMemFuture", 107 lockRankGscan: "gscan", 108 lockRankStackpool: "stackpool", 109 lockRankStackLarge: "stackLarge", 110 lockRankHchanLeaf: "hchanLeaf", 111 lockRankWbufSpans: "wbufSpans", 112 lockRankMheap: "mheap", 113 lockRankGlobalAlloc: "globalAlloc", 114 lockRankTrace: "trace", 115 lockRankTraceStackTab: "traceStackTab", 116 lockRankPanic: "panic", 117 lockRankDeadlock: "deadlock", 118 } 119 120 func (rank lockRank) String() string { 121 if rank == 0 { 122 return "UNKNOWN" 123 } 124 if rank == lockRankLeafRank { 125 return "LEAF" 126 } 127 if rank < 0 || int(rank) >= len(lockNames) { 128 return "BAD RANK" 129 } 130 return lockNames[rank] 131 } 132 133 // lockPartialOrder is the transitive closure of the lock rank graph. 134 // An entry for rank X lists all of the ranks that can already be held 135 // when rank X is acquired. 136 // 137 // Lock ranks that allow self-cycles list themselves. 138 var lockPartialOrder [][]lockRank = [][]lockRank{ 139 lockRankSysmon: {}, 140 lockRankScavenge: {lockRankSysmon}, 141 lockRankForcegc: {lockRankSysmon}, 142 lockRankDefer: {}, 143 lockRankSweepWaiters: {}, 144 lockRankAssistQueue: {}, 145 lockRankSweep: {}, 146 lockRankPollDesc: {}, 147 lockRankCpuprof: {}, 148 lockRankSched: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof}, 149 lockRankAllg: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched}, 150 lockRankAllp: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched}, 151 lockRankTimers: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers}, 152 lockRankNetpollInit: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllp, lockRankTimers}, 153 lockRankHchan: {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan}, 154 lockRankNotifyList: {}, 155 lockRankSudog: {lockRankSysmon, lockRankScavenge, lockRankSweep, lockRankHchan, lockRankNotifyList}, 156 lockRankRwmutexW: {}, 157 lockRankRwmutexR: {lockRankSysmon, lockRankRwmutexW}, 158 lockRankRoot: {}, 159 lockRankItab: {}, 160 lockRankReflectOffs: {lockRankItab}, 161 lockRankUserArenaState: {}, 162 lockRankTraceBuf: {lockRankSysmon, lockRankScavenge}, 163 lockRankTraceStrings: {lockRankSysmon, lockRankScavenge, lockRankTraceBuf}, 164 lockRankFin: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 165 lockRankGcBitsArenas: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 166 lockRankMheapSpecial: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 167 lockRankMspanSpecial: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 168 lockRankSpanSetSpine: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 169 lockRankProfInsert: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 170 lockRankProfBlock: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 171 lockRankProfMemActive: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings}, 172 lockRankProfMemFuture: {lockRankSysmon, lockRankScavenge, lockRankForcegc, lockRankSweepWaiters, lockRankAssistQueue, lockRankSweep, lockRankPollDesc, lockRankCpuprof, lockRankSched, lockRankAllg, lockRankAllp, lockRankTimers, lockRankHchan, lockRankNotifyList, lockRankItab, lockRankReflectOffs, lockRankUserArenaState, lockRankTraceBuf, lockRankTraceStrings, lockRankProfMemActive}, 173 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}, 174 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}, 175 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}, 176 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}, 177 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}, 178 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}, 179 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}, 180 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}, 181 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}, 182 lockRankPanic: {}, 183 lockRankDeadlock: {lockRankPanic, lockRankDeadlock}, 184 }