aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/trace/threadgen.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/trace/threadgen.go')
-rw-r--r--src/cmd/trace/threadgen.go56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/cmd/trace/threadgen.go b/src/cmd/trace/threadgen.go
index 2d2c7eb753..c2e2c86f6c 100644
--- a/src/cmd/trace/threadgen.go
+++ b/src/cmd/trace/threadgen.go
@@ -6,9 +6,9 @@ package main
import (
"fmt"
+ "internal/trace"
"internal/trace/traceviewer"
"internal/trace/traceviewer/format"
- tracev2 "internal/trace/v2"
)
var _ generator = &threadGenerator{}
@@ -16,22 +16,22 @@ var _ generator = &threadGenerator{}
type threadGenerator struct {
globalRangeGenerator
globalMetricGenerator
- stackSampleGenerator[tracev2.ThreadID]
- logEventGenerator[tracev2.ThreadID]
+ stackSampleGenerator[trace.ThreadID]
+ logEventGenerator[trace.ThreadID]
- gStates map[tracev2.GoID]*gState[tracev2.ThreadID]
- threads map[tracev2.ThreadID]struct{}
+ gStates map[trace.GoID]*gState[trace.ThreadID]
+ threads map[trace.ThreadID]struct{}
}
func newThreadGenerator() *threadGenerator {
tg := new(threadGenerator)
- rg := func(ev *tracev2.Event) tracev2.ThreadID {
+ rg := func(ev *trace.Event) trace.ThreadID {
return ev.Thread()
}
tg.stackSampleGenerator.getResource = rg
tg.logEventGenerator.getResource = rg
- tg.gStates = make(map[tracev2.GoID]*gState[tracev2.ThreadID])
- tg.threads = make(map[tracev2.ThreadID]struct{})
+ tg.gStates = make(map[trace.GoID]*gState[trace.ThreadID])
+ tg.threads = make(map[trace.ThreadID]struct{})
return tg
}
@@ -39,26 +39,26 @@ func (g *threadGenerator) Sync() {
g.globalRangeGenerator.Sync()
}
-func (g *threadGenerator) GoroutineLabel(ctx *traceContext, ev *tracev2.Event) {
+func (g *threadGenerator) GoroutineLabel(ctx *traceContext, ev *trace.Event) {
l := ev.Label()
g.gStates[l.Resource.Goroutine()].setLabel(l.Label)
}
-func (g *threadGenerator) GoroutineRange(ctx *traceContext, ev *tracev2.Event) {
+func (g *threadGenerator) 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 *threadGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Event) {
- if ev.Thread() != tracev2.NoThread {
+func (g *threadGenerator) GoroutineTransition(ctx *traceContext, ev *trace.Event) {
+ if ev.Thread() != trace.NoThread {
if _, ok := g.threads[ev.Thread()]; !ok {
g.threads[ev.Thread()] = struct{}{}
}
@@ -71,7 +71,7 @@ func (g *threadGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Eve
// gState for it.
gs, ok := g.gStates[goID]
if !ok {
- gs = newGState[tracev2.ThreadID](goID)
+ gs = newGState[trace.ThreadID](goID)
g.gStates[goID] = gs
}
// If we haven't already named this goroutine, try to name it.
@@ -84,7 +84,7 @@ func (g *threadGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Eve
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 {
@@ -93,30 +93,30 @@ func (g *threadGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Eve
}
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, ev.Thread(), ctx)
}
- if from == tracev2.GoWaiting {
+ if from == trace.GoWaiting {
// Goroutine was unblocked.
gs.unblock(ev.Time(), ev.Stack(), ev.Thread(), ctx)
}
- if from == tracev2.GoNotExist && to == tracev2.GoRunnable {
+ if from == trace.GoNotExist && to == trace.GoRunnable {
// Goroutine was created.
gs.created(ev.Time(), ev.Thread(), ev.Stack())
}
- if from == tracev2.GoSyscall {
+ if from == trace.GoSyscall {
// Exiting syscall.
- gs.syscallEnd(ev.Time(), to != tracev2.GoRunning, ctx)
+ gs.syscallEnd(ev.Time(), to != trace.GoRunning, 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
}
@@ -131,8 +131,8 @@ func (g *threadGenerator) GoroutineTransition(ctx *traceContext, ev *tracev2.Eve
ctx.GoroutineTransition(ctx.elapsed(ev.Time()), viewerGState(from, inMarkAssist), viewerGState(to, inMarkAssist))
}
-func (g *threadGenerator) ProcTransition(ctx *traceContext, ev *tracev2.Event) {
- if ev.Thread() != tracev2.NoThread {
+func (g *threadGenerator) ProcTransition(ctx *traceContext, ev *trace.Event) {
+ if ev.Thread() != trace.NoThread {
if _, ok := g.threads[ev.Thread()]; !ok {
g.threads[ev.Thread()] = struct{}{}
}
@@ -155,7 +155,7 @@ func (g *threadGenerator) ProcTransition(ctx *traceContext, ev *tracev2.Event) {
}
if to.Executing() {
start := ev.Time()
- if from == tracev2.ProcUndetermined {
+ if from == trace.ProcUndetermined {
start = ctx.startTime
}
viewerEv.Name = "proc start"
@@ -182,7 +182,7 @@ func (g *threadGenerator) ProcTransition(ctx *traceContext, ev *tracev2.Event) {
}
}
-func (g *threadGenerator) ProcRange(ctx *traceContext, ev *tracev2.Event) {
+func (g *threadGenerator) ProcRange(ctx *traceContext, ev *trace.Event) {
// TODO(mknyszek): Extend procRangeGenerator to support rendering proc ranges on threads.
}