summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-03-01 23:46:58 +0200
committerPaul Buetow <paul@buetow.org>2026-03-01 23:46:58 +0200
commit225cc311074f35e09aa3e70407d4e9f009f435a1 (patch)
treee51387362cb26f7afdabd87a4953594006b9cb67
parent5775246cb9c2ccfb3469addf6f5fe9a8fc198171 (diff)
Move BPF setup off flags.Flags
-rw-r--r--internal/bpfsetup.go45
-rw-r--r--internal/flags/flags.go43
-rw-r--r--internal/ior.go4
3 files changed, 47 insertions, 45 deletions
diff --git a/internal/bpfsetup.go b/internal/bpfsetup.go
new file mode 100644
index 0000000..9791930
--- /dev/null
+++ b/internal/bpfsetup.go
@@ -0,0 +1,45 @@
+package internal
+
+import (
+ "fmt"
+ "os"
+
+ "ior/internal/flags"
+
+ bpf "github.com/aquasecurity/libbpfgo"
+)
+
+func setBPFGlobals(cfg flags.Flags, bpfModule *bpf.Module) error {
+ // Ignore `ior` process itself from the filter.
+ if err := bpfModule.InitGlobalVariable("IOR_PID_FILTER", uint32(os.Getpid())); err != nil {
+ return fmt.Errorf("unable set IOR_PID_FILTER: %w", err)
+ }
+ if err := bpfModule.InitGlobalVariable("PID_FILTER", uint32(cfg.PidFilter)); err != nil {
+ return fmt.Errorf("unable to set up PID_FILTER global variable: %w", err)
+ }
+ if err := bpfModule.InitGlobalVariable("TID_FILTER", uint32(cfg.TidFilter)); err != nil {
+ return fmt.Errorf("unable to set up TID_FILTER global variable: %w", err)
+ }
+ return nil
+}
+
+func resizeBPFMaps(cfg flags.Flags, bpfModule *bpf.Module) error {
+ if err := resizeBPFMap(bpfModule, "event_map", uint32(cfg.EventMapSize)); err != nil {
+ return fmt.Errorf("event_map: %w", err)
+ }
+ return nil
+}
+
+func resizeBPFMap(module *bpf.Module, name string, size uint32) error {
+ m, err := module.GetMap(name)
+ if err != nil {
+ return err
+ }
+ if err = m.SetMaxEntries(size); err != nil {
+ return err
+ }
+ if actual := m.MaxEntries(); actual != size {
+ return fmt.Errorf("map resize to %d failed, expected %v, actual %v", size, size, actual)
+ }
+ return nil
+}
diff --git a/internal/flags/flags.go b/internal/flags/flags.go
index 19f9a63..5197eb4 100644
--- a/internal/flags/flags.go
+++ b/internal/flags/flags.go
@@ -10,8 +10,6 @@ import (
"sync"
"sync/atomic"
"time"
-
- bpf "github.com/aquasecurity/libbpfgo"
)
var (
@@ -204,44 +202,3 @@ func (flags Flags) ShouldIAttachTracepoint(tracepointName string) bool {
return false
}
-
-func (flags Flags) SetBPF(bpfModule *bpf.Module) error {
- // Ignore `ior` process itself from the filter
- if err := bpfModule.InitGlobalVariable("IOR_PID_FILTER", uint32(os.Getpid())); err != nil {
- return fmt.Errorf("unable set IOR_PID_FILTER: %w", err)
- }
-
- if err := bpfModule.InitGlobalVariable("PID_FILTER", uint32(flags.PidFilter)); err != nil {
- return fmt.Errorf("unable to set up PID_FILTER global variable: %w", err)
- }
-
- if err := bpfModule.InitGlobalVariable("TID_FILTER", uint32(flags.TidFilter)); err != nil {
- return fmt.Errorf("unable to set up TID_FILTER global variable: %w", err)
- }
-
- return nil
-}
-
-func (flags Flags) ResizeBPFMaps(bpfModule *bpf.Module) error {
- if err := resizeBPFMap(bpfModule, "event_map", uint32(flags.EventMapSize)); err != nil {
- return fmt.Errorf("event_map: %w", err)
- }
- return nil
-}
-
-func resizeBPFMap(module *bpf.Module, name string, size uint32) error {
- m, err := module.GetMap(name)
- if err != nil {
- return err
- }
-
- if err = m.SetMaxEntries(size); err != nil {
- return err
- }
-
- if actual := m.MaxEntries(); actual != size {
- return fmt.Errorf("map resize to %d failed, expected %v, actual %v", size, size, actual)
- }
-
- return nil
-}
diff --git a/internal/ior.go b/internal/ior.go
index 0d824cd..c43ad45 100644
--- a/internal/ior.go
+++ b/internal/ior.go
@@ -254,11 +254,11 @@ func runTraceWithContext(parentCtx context.Context, started chan<- struct{}, con
}
defer bpfModule.Close()
- if err := cfg.ResizeBPFMaps(bpfModule); err != nil {
+ if err := resizeBPFMaps(cfg, bpfModule); err != nil {
return err
}
- if err := cfg.SetBPF(bpfModule); err != nil {
+ if err := setBPFGlobals(cfg, bpfModule); err != nil {
return err
}