From 4e9a6fc2f09fd0b02d16950fecfa3d880ee102c1 Mon Sep 17 00:00:00 2001 From: Nikolay Sivko Date: Tue, 30 Apr 2024 11:23:41 +0300 Subject: [PATCH] require either `debugfs` or `tracefs` to be mounted --- ebpftracer/tracer.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ebpftracer/tracer.go b/ebpftracer/tracer.go index c16b090..238b9d3 100644 --- a/ebpftracer/tracer.go +++ b/ebpftracer/tracer.go @@ -170,9 +170,11 @@ func (t *Tracer) ebpf(ch chan<- Event) error { if len(prg) == 0 { return fmt.Errorf("unsupported kernel version: %s", t.kernelVersion) } + _, debugFsErr := os.Stat("/sys/kernel/debug/tracing") + _, traceFsErr := os.Stat("/sys/kernel/tracing") - if _, err := os.Stat("/sys/kernel/debug/tracing"); err != nil { - return fmt.Errorf("kernel tracing is not available: %w", err) + if debugFsErr != nil && traceFsErr != nil { + return fmt.Errorf("kernel tracing is not available: debugfs or tracefs must be mounted") } collectionSpec, err := ebpf.LoadCollectionSpecFromReader(bytes.NewReader(prg))