aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/trace/goroutinegen.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/trace/goroutinegen.go')
-rw-r--r--src/cmd/trace/goroutinegen.go56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/cmd/trace/goroutinegen.go b/src/cmd/trace/goroutinegen.go
index 096aa9972a..385ac37253 100644
--- a/src/cmd/trace/goroutinegen.go
+++ b/src/cmd/trace/goroutinegen.go
@@ -5,7 +5,7 @@
package main
import (
- tracev2 "internal/trace/v2"
+ "internal/trace"
)
var _ generator = &goroutineGenerator{}
@@ -13,29 +13,29 @@ var _ generator = &goroutineGenerator{}
type goroutineGenerator struct {
globalRangeGenerator
globalMetricGenerator
- stackSampleGenerator[tracev2.GoID]
- logEventGenerator[tracev2.GoID]
+ stackSampleGenerator[trace.GoID]
+ logEventGenerator[trace.GoID]
- gStates map[tracev2.GoID]*gState[tracev2.GoID]
- focus tracev2.GoID
- filter map[tracev2.GoID]struct{}
+ gStates map[trace.GoID]*gState[trace.GoID]
+ focus trace.GoID
+ filter map[trace.GoID]struct{}
}
-func newGoroutineGenerator(ctx *traceContext, focus tracev2.GoID, filter map[tracev2.GoID]struct{}) *goroutineGenerator {
+func newGoroutineGenerator(ctx *traceContext, focus trace.GoID, filter map[trace.GoID]struct{}) *goroutineGenerator {
gg := new(goroutineGenerator)
- rg := func(ev *tracev2.Event) tracev2.GoID {
+ rg := func(ev *trace.Event) trace.GoID {
return ev.Goroutine()
}
gg.stackSampleGenerator.getResource = rg
gg.logEventGenerator.getResource = rg
- gg.gStates = make(map[tracev2.GoID]*gState[tracev2.GoID])
+ gg.gStates = make(map[trace.GoID]*gState[trace.GoID])
gg.focus = focus
gg.filter = filter
// Enable a filter on the emitter.
if filter != nil {
ctx.SetResourceFilter(func(resource uint64) bool {
- _, ok := filter[tracev2.GoID(resource)]
+ _, ok := filter[trace.GoID(resource)]
return ok
})
}
@@ -46,25 +46,25 @@ func (g *goroutineGenerator) Sync() {
g.globalRangeGenerator.Sync()
}
-func (g *goroutineGenerator) GoroutineLabel(ctx *traceContext, ev *tracev2.Event) {
+func (g *goroutineGenerator) GoroutineLabel(ctx *traceContext, ev *trace.Event) {
l := ev.Label()
g.gStates[l.Resource.Goroutine()].setLabel(l.Label)
}
-func (g *goroutineGenerator) GoroutineRange(ctx *traceContext, ev *tracev2.Event) {
+func (g *goroutineGenerator) GoroutineRange(ctx *traceContext, ev *trace.Event) {
r := ev.Range()
switch ev.Kind() {
- case tracev2.EventRangeBegin:
+ case trace.EventRangeBegin:
g.gStates[r.Scope.Goroutine()].rangeBegin(ev.Time(), r.Name, ev.Stack())
- case tracev2.EventRangeActive:
+ case trace.EventRangeActive:
g.gStates[r.Scope.Goroutine()].rangeActive(r.Name)
- case tracev2.EventRangeEnd:
+ case trace.EventRangeEnd:
gs := g.gStates[r.Scope.Goroutine()]
gs.rangeEnd(ev.Time(), r.Name, ev.Stack(), ctx)
}
}
-func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Event) {
+func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *trace.Event) {
st := ev.StateTransition()
goID := st.Resource.Goroutine()
@@ -72,7 +72,7 @@ func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.
// gState for it.
gs, ok := g.gStates[goID]
if !ok {
- gs = newGState[tracev2.GoID](goID)
+ gs = newGState[trace.GoID](goID)
g.gStates[goID] = gs
}
@@ -86,7 +86,7 @@ func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.
return
}
if from.Executing() && !to.Executing() {
- if to == tracev2.GoWaiting {
+ if to == trace.GoWaiting {
// Goroutine started blocking.
gs.block(ev.Time(), ev.Stack(), st.Reason, ctx)
} else {
@@ -95,34 +95,34 @@ func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.
}
if !from.Executing() && to.Executing() {
start := ev.Time()
- if from == tracev2.GoUndetermined {
+ if from == trace.GoUndetermined {
// Back-date the event to the start of the trace.
start = ctx.startTime
}
gs.start(start, goID, ctx)
}
- if from == tracev2.GoWaiting {
+ if from == trace.GoWaiting {
// Goroutine unblocked.
gs.unblock(ev.Time(), ev.Stack(), ev.Goroutine(), ctx)
}
- if from == tracev2.GoNotExist && to == tracev2.GoRunnable {
+ if from == trace.GoNotExist && to == trace.GoRunnable {
// Goroutine was created.
gs.created(ev.Time(), ev.Goroutine(), ev.Stack())
}
- if from == tracev2.GoSyscall && to != tracev2.GoRunning {
+ if from == trace.GoSyscall && to != trace.GoRunning {
// Exiting blocked syscall.
gs.syscallEnd(ev.Time(), true, ctx)
gs.blockedSyscallEnd(ev.Time(), ev.Stack(), ctx)
- } else if from == tracev2.GoSyscall {
+ } else if from == trace.GoSyscall {
// Check if we're exiting a syscall in a non-blocking way.
gs.syscallEnd(ev.Time(), false, ctx)
}
// Handle syscalls.
- if to == tracev2.GoSyscall {
+ if to == trace.GoSyscall {
start := ev.Time()
- if from == tracev2.GoUndetermined {
+ if from == trace.GoUndetermined {
// Back-date the event to the start of the trace.
start = ctx.startTime
}
@@ -137,12 +137,12 @@ func (g *goroutineGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.
ctx.GoroutineTransition(ctx.elapsed(ev.Time()), viewerGState(from, inMarkAssist), viewerGState(to, inMarkAssist))
}
-func (g *goroutineGenerator) ProcRange(ctx *traceContext, ev *tracev2.Event) {
+func (g *goroutineGenerator) ProcRange(ctx *traceContext, ev *trace.Event) {
// TODO(mknyszek): Extend procRangeGenerator to support rendering proc ranges
// that overlap with a goroutine's execution.
}
-func (g *goroutineGenerator) ProcTransition(ctx *traceContext, ev *tracev2.Event) {
+func (g *goroutineGenerator) ProcTransition(ctx *traceContext, ev *trace.Event) {
// Not needed. All relevant information for goroutines can be derived from goroutine transitions.
}
@@ -161,7 +161,7 @@ func (g *goroutineGenerator) Finish(ctx *traceContext) {
}
// Set the goroutine to focus on.
- if g.focus != tracev2.NoGoroutine {
+ if g.focus != trace.NoGoroutine {
ctx.Focus(uint64(g.focus))
}
}