• Austin Clements's avatar
    runtime, cmd/trace: track goroutines blocked on GC assists · 6da83c6f
    Austin Clements authored
    Currently when a goroutine blocks on a GC assist, it emits a generic
    EvGoBlock event. Since assist blocking events and, in particular, the
    length of the blocked assist queue, are important for diagnosing GC
    behavior, this commit adds a new EvGoBlockGC event for blocking on a
    GC assist. The trace viewer uses this event to report a "waiting on
    GC" count in the "Goroutines" row. This makes sense because, unlike
    other blocked goroutines, these goroutines do have work to do, so
    being blocked on a GC assist is quite similar to being in the
    "runnable" state, which we also report in the trace viewer.
    
    Change-Id: Ic21a326992606b121ea3d3d00110d8d1fdc7a5ef
    Reviewed-on: https://go-review.googlesource.com/30704
    Run-TryBot: Austin Clements <austin@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDmitry Vyukov <dvyukov@google.com>
    6da83c6f
mgcmark.go 42.4 KB