summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-02-16 21:46:02 +0200
committerPaul Buetow <paul@buetow.org>2024-02-16 21:46:02 +0200
commit01059c9390150a4e9b78db6c6399e02729121331 (patch)
tree381e6b0bf74eeaef3630523af8dbb413a97c96ba /internal
parentec6ad4983ca023842cc5c780a723b753bf55518b (diff)
calculate time taken
Diffstat (limited to 'internal')
-rw-r--r--internal/flags/flags.go2
-rw-r--r--internal/ioriotng.go14
-rw-r--r--internal/types/types.go2
3 files changed, 12 insertions, 6 deletions
diff --git a/internal/flags/flags.go b/internal/flags/flags.go
index d50410b..2331762 100644
--- a/internal/flags/flags.go
+++ b/internal/flags/flags.go
@@ -16,7 +16,7 @@ type Flags struct {
func New() (flags Flags) {
flag.IntVar(&flags.UidFilter, "uid", 0, "Filter for processes with UID")
- flag.IntVar(&flags.EventMapSize, "mapSize", 4096, "BPF FD event ring buffer map size")
+ flag.IntVar(&flags.EventMapSize, "mapSize", 4096*16, "BPF FD event ring buffer map size")
flag.Parse()
return flags
diff --git a/internal/ioriotng.go b/internal/ioriotng.go
index 49a44bb..8ab9371 100644
--- a/internal/ioriotng.go
+++ b/internal/ioriotng.go
@@ -48,7 +48,7 @@ func Run(flags flags.Flags) {
panic(err)
}
- ch := make(chan []byte, 1024)
+ ch := make(chan []byte)
rb, err := bpfModule.InitRingBuf("event_map", ch)
if err != nil {
panic(err)
@@ -65,6 +65,7 @@ func Run(flags flags.Flags) {
case types.OPENAT_ENTER_OP_ID:
ev := readRaw(raw, syncpool.OpenEnterEvent.Get().(*types.OpenatEnterEvent))
enterOpen[ev.Tid] = ev
+
case types.OPENAT_EXIT_OP_ID:
ev := readRaw(raw, syncpool.FdEvent.Get().(*types.FdEvent))
enterEv, ok := enterOpen[ev.Tid]
@@ -73,13 +74,17 @@ func Run(flags flags.Flags) {
syncpool.FdEvent.Put(ev)
continue
}
- fmt.Println(enterEv, ev)
+ duration := float64(ev.Time-enterEv.Time) / float64(1_000_000)
+ fmt.Println(duration, "ms", enterEv, ev)
+
delete(enterOpen, ev.Tid)
syncpool.FdEvent.Put(ev)
syncpool.OpenEnterEvent.Put(enterEv)
+
case types.CLOSE_ENTER_OP_ID:
ev := readRaw(raw, syncpool.FdEvent.Get().(*types.FdEvent))
enterFd[ev.Tid] = ev
+
case types.CLOSE_EXIT_OP_ID:
ev := readRaw(raw, syncpool.NullEvent.Get().(*types.NullEvent))
enterEv, ok := enterFd[ev.Tid]
@@ -88,10 +93,13 @@ func Run(flags flags.Flags) {
syncpool.NullEvent.Put(ev)
continue
}
- fmt.Println(enterEv, ev)
+ duration := float64(ev.Time-enterEv.Time) / float64(1_000_000)
+ fmt.Println(duration, "ms", enterEv, ev)
+
delete(enterFd, ev.Tid)
syncpool.NullEvent.Put(ev)
syncpool.FdEvent.Put(enterEv)
+
default:
panic(fmt.Sprintf("UNKNOWN Ringbuf data received len:%d raw:%v", len(raw), raw))
}
diff --git a/internal/types/types.go b/internal/types/types.go
index 99d760e..7c5c269 100644
--- a/internal/types/types.go
+++ b/internal/types/types.go
@@ -69,5 +69,3 @@ func (ev OpenatEnterEvent) String() string {
type FlagValues struct {
UidFilter uint32
}
-
-// duration := float64(e.ExitTime-e.EnterTime) / float64(1_000_000)