• Dmitriy Vyukov's avatar
    runtime: dump scheduler state if GODEBUG=schedtrace is set · 4f2e382c
    Dmitriy Vyukov authored
    The schedtrace value sets dump period in milliseconds.
    In default mode the trace looks as follows:
    SCHED 0ms: gomaxprocs=4 idleprocs=0 threads=3 idlethreads=0 runqueue=0 [1 0 0 0]
    SCHED 1001ms: gomaxprocs=4 idleprocs=3 threads=6 idlethreads=3 runqueue=0 [0 0 0 0]
    SCHED 2008ms: gomaxprocs=4 idleprocs=1 threads=6 idlethreads=1 runqueue=0 [0 1 0 0]
    If GODEBUG=scheddetail=1 is set as well, then the detailed trace is printed:
    SCHED 0ms: gomaxprocs=4 idleprocs=0 threads=3 idlethreads=0 runqueue=0 singleproc=0 gcwaiting=1 mlocked=0 nmspinning=0 stopwait=0 sysmonwait=0
      P0: status=3 tick=1 m=0 runqsize=1/128 gfreecnt=0
      P1: status=3 tick=0 m=-1 runqsize=0/128 gfreecnt=0
      P2: status=3 tick=0 m=-1 runqsize=0/128 gfreecnt=0
      P3: status=3 tick=0 m=-1 runqsize=0/128 gfreecnt=0
      M2: p=-1 curg=-1 mallocing=0 throwing=0 gcing=0 locks=1 dying=0 helpgc=0 spinning=0 lockedg=-1
      M1: p=-1 curg=-1 mallocing=0 throwing=0 gcing=0 locks=1 dying=0 helpgc=0 spinning=0 lockedg=-1
      M0: p=0 curg=1 mallocing=0 throwing=0 gcing=0 locks=1 dying=0 helpgc=0 spinning=0 lockedg=1
      G1: status=2() m=0 lockedm=0
      G2: status=1() m=-1 lockedm=-1
    
    R=golang-dev, raggi, rsc
    CC=golang-dev
    https://golang.org/cl/11435044
    4f2e382c
proc.c 68 KB