Skip to content

Commit

Permalink
tetragon: Use ebpf/cilium feature test for bpf_override_return helper
Browse files Browse the repository at this point in the history
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
  • Loading branch information
olsajiri committed Jan 3, 2024
1 parent ef1c5f5 commit a2eed2d
Showing 1 changed file with 2 additions and 23 deletions.
25 changes: 2 additions & 23 deletions pkg/bpf/detect.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (

"github.com/cilium/ebpf"
"github.com/cilium/ebpf/asm"
"github.com/cilium/ebpf/features"
"github.com/cilium/ebpf/link"
"golang.org/x/sys/unix"
)
Expand All @@ -23,37 +24,15 @@ type Feature struct {
}

var (
overrideHelper Feature
signalHelper Feature
kprobeMulti Feature
buildid Feature
modifyReturn Feature
largeProgramSize Feature
)

func detectOverrideHelper() bool {
prog, err := ebpf.NewProgram(&ebpf.ProgramSpec{
Type: ebpf.Kprobe,
Instructions: asm.Instructions{
asm.LoadImm(asm.R2, 2, asm.DWord),
asm.Instruction{OpCode: asm.OpCode(asm.JumpClass).SetJumpOp(asm.Call), Constant: 58},
asm.LoadImm(asm.R0, 0, asm.DWord),
asm.Return(),
},
License: "GPL",
})
if err != nil {
return false
}
prog.Close()
return true
}

func HasOverrideHelper() bool {
overrideHelper.init.Do(func() {
overrideHelper.detected = detectOverrideHelper()
})
return overrideHelper.detected
return features.HaveProgramHelper(ebpf.Kprobe, asm.FnOverrideReturn) == nil
}

func detectSignalHelper() bool {
Expand Down

0 comments on commit a2eed2d

Please sign in to comment.