summaryrefslogtreecommitdiff
path: root/internal/eventloop.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-03-12 22:58:13 +0200
committerPaul Buetow <paul@buetow.org>2025-03-12 22:58:13 +0200
commit0cbf594b5646ec7b020894d918c522be825aacc4 (patch)
treeacebbd79c31a1c1a0efb1400e664c55f52fd4211 /internal/eventloop.go
parentac7ebea0920819a14e981da7e3297a8e2e256559 (diff)
refactor
Diffstat (limited to 'internal/eventloop.go')
-rw-r--r--internal/eventloop.go46
1 files changed, 23 insertions, 23 deletions
diff --git a/internal/eventloop.go b/internal/eventloop.go
index 9d243d9..26718b5 100644
--- a/internal/eventloop.go
+++ b/internal/eventloop.go
@@ -12,19 +12,19 @@ import (
"ior/internal/event"
"ior/internal/file"
"ior/internal/flags"
+ "ior/internal/flamegraph"
. "ior/internal/generated/types"
- "ior/internal/tree"
)
// TODO: Move in its own package?
type eventLoop struct {
- flags flags.Flags
- filter *eventFilter
- enterEvs map[uint32]*event.Pair // Temp. store of sys_enter tracepoints per Tid.
- files map[int32]file.File // Track all open files by file descriptor..
- comms map[uint32]string // Program or thread name of the current Tid.
- prevPairs map[uint32]*event.Pair // Previous event (to calculate time differences between two events)
- tree tree.Tree // Storing all paths in a tree structure for analysis
+ flags flags.Flags
+ filter *eventFilter
+ enterEvs map[uint32]*event.Pair // Temp. store of sys_enter tracepoints per Tid.
+ files map[int32]file.File // Track all open files by file descriptor..
+ comms map[uint32]string // Program or thread name of the current Tid.
+ prevPairs map[uint32]*event.Pair // Previous event (to calculate time differences between two events)
+ flamegraph flamegraph.Flamegraph // Storing all paths in a map structure for analysis
// Statistics
numTracepoints uint
@@ -36,13 +36,13 @@ type eventLoop struct {
func newEventLoop(flags flags.Flags) *eventLoop {
return &eventLoop{
- flags: flags,
- filter: newEventFilter(flags),
- enterEvs: make(map[uint32]*event.Pair),
- files: make(map[int32]file.File),
- comms: make(map[uint32]string),
- prevPairs: make(map[uint32]*event.Pair),
- tree: tree.New(), // TODO: Implement
+ flags: flags,
+ filter: newEventFilter(flags),
+ enterEvs: make(map[uint32]*event.Pair),
+ files: make(map[int32]file.File),
+ comms: make(map[uint32]string),
+ prevPairs: make(map[uint32]*event.Pair),
+ flamegraph: flamegraph.New(),
}
}
@@ -62,8 +62,8 @@ func (e *eventLoop) stats() string {
func (e *eventLoop) run(ctx context.Context, rawCh <-chan []byte) {
var recycle bool
- if e.flags.TreeEnable {
- e.tree.Start(ctx)
+ if e.flags.FlamegraphEnable {
+ e.flamegraph.Start(ctx)
}
if e.flags.PprofEnable {
fmt.Println("Profiling, press Ctrl+C to stop")
@@ -73,9 +73,9 @@ func (e *eventLoop) run(ctx context.Context, rawCh <-chan []byte) {
e.startTime = time.Now()
for ev := range e.events(ctx, rawCh) {
switch {
- case e.flags.TreeEnable:
- e.tree.Add(ev)
- recycle = false // tree needs to recycle by itself
+ case e.flags.FlamegraphEnable:
+ e.flamegraph.Add(ev)
+ recycle = false // Flamegraph needs to recycle by itself
case e.flags.PprofEnable:
recycle = true
default:
@@ -88,9 +88,9 @@ func (e *eventLoop) run(ctx context.Context, rawCh <-chan []byte) {
e.numSyscallsAfterFilter++
}
- if e.flags.TreeEnable {
- fmt.Println("Waiting for tree")
- <-e.tree.Done
+ if e.flags.FlamegraphEnable {
+ fmt.Println("Waiting for flamegraph")
+ <-e.flamegraph.Done
}
}