summaryrefslogtreecommitdiff
path: root/internal/event.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-03-11 09:52:30 +0200
committerPaul Buetow <paul@buetow.org>2025-03-11 09:52:30 +0200
commitf9d8d2d9a107204fddf13b8f60845e817076d1f8 (patch)
treeb38437d816f589dc18246290c95124fe25962e5e /internal/event.go
parenta7f6f047de1e0ae56a0ef3a4c74e86f4f8f6eeb7 (diff)
refactor and initial tree
Diffstat (limited to 'internal/event.go')
-rw-r--r--internal/event.go96
1 files changed, 0 insertions, 96 deletions
diff --git a/internal/event.go b/internal/event.go
deleted file mode 100644
index e638223..0000000
--- a/internal/event.go
+++ /dev/null
@@ -1,96 +0,0 @@
-package internal
-
-import (
- "fmt"
- . "ior/internal/generated/types"
- "strconv"
- "strings"
- "sync"
-)
-
-var poolOfEventPairs = sync.Pool{
- New: func() interface{} { return &eventPair{} },
-}
-
-type event interface {
- String() string
- GetTraceId() TraceId
- GetPid() uint32
- GetTid() uint32
- GetTime() uint64
- Recycle()
-}
-
-// Represents a pair of enter and exit events (e.g. entering the syscall + exiting it)
-type eventPair struct {
- enterEv, exitEv event
- file file
- comm string
- duration uint64
- tracepointMismatch bool
-
- // To calculate the time difference from the previoud event.
- prevPair *eventPair
- durationToPrev uint64
-}
-
-func newEventPair(enterEv event) *eventPair {
- e := poolOfEventPairs.Get().(*eventPair)
- e.enterEv = enterEv
- return e
-}
-
-func (e *eventPair) calculateDurations() {
- e.duration = e.exitEv.GetTime() - e.enterEv.GetTime()
-
- if e.prevPair != nil {
- e.durationToPrev = e.enterEv.GetTime() - e.prevPair.exitEv.GetTime()
- }
-}
-
-func (e *eventPair) is(id TraceId) bool {
- return e.enterEv.GetTraceId() == id
-}
-
-const eventStreamHeader = "durationToPrevNs,durationNs,comm,pid.tid,name,ret,notice,file"
-
-func (e *eventPair) String() string {
- var sb strings.Builder
-
- sb.WriteString(fmt.Sprintf("%08d,%08d", e.durationToPrev, e.duration))
-
- sb.WriteString(",")
- sb.WriteString(e.comm)
-
- sb.WriteString(",")
- sb.WriteString(strconv.FormatInt(int64(e.enterEv.GetPid()), 10))
- sb.WriteString(".")
- sb.WriteString(strconv.FormatInt(int64(e.enterEv.GetTid()), 10))
-
- sb.WriteString(",")
- sb.WriteString(e.enterEv.GetTraceId().Name())
-
- sb.WriteString(",")
- if retEv, ok := e.exitEv.(*RetEvent); ok {
- sb.WriteString(strconv.FormatInt(int64(retEv.Ret), 10))
- }
-
- sb.WriteString(",")
- sb.WriteString(e.file.String())
-
- if e.tracepointMismatch {
- sb.WriteString(",MISMATCH")
- }
- return sb.String()
-}
-
-func (e *eventPair) dump() string {
- return fmt.Sprintf("%v with enterEv(%v) and exitEv(%v)", e, e.enterEv, e.exitEv)
-}
-
-func (e *eventPair) recycle() {
- e.enterEv.Recycle()
- e.exitEv.Recycle()
- e.prevPair = nil
- poolOfEventPairs.Put(e)
-}