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  }