diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/flags/flags.go | 2 | ||||
| -rw-r--r-- | internal/ioriotng.go | 14 | ||||
| -rw-r--r-- | internal/types/types.go | 2 |
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) |
