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  }