Skip to content

Commit 99bf162

Browse files
committed
kprobe: cleanup obsolete code.
Signed-off-by: Sam Wang (holyspectral) <[email protected]>
1 parent 589ab67 commit 99bf162

File tree

1 file changed

+10
-157
lines changed

1 file changed

+10
-157
lines changed

pkg/sensors/program/loader_linux.go

Lines changed: 10 additions & 157 deletions
Original file line numberDiff line numberDiff line change
@@ -127,30 +127,6 @@ func disableProg(coll *ebpf.CollectionSpec, name string) {
127127
}
128128
}
129129

130-
func KprobeOpen(load *Program) OpenFunc {
131-
return func(coll *ebpf.CollectionSpec) error {
132-
// The generic_kprobe_override program is part of bpf_generic_kprobe.o object,
133-
// so let's disable it if the override is not configured. Otherwise it gets
134-
// loaded and bpftool will show it.
135-
if !load.Override {
136-
disableProg(coll, "generic_kprobe_override")
137-
disableProg(coll, "generic_fmodret_override")
138-
} else {
139-
if load.OverrideFmodRet {
140-
spec, ok := coll.Programs["generic_fmodret_override"]
141-
if !ok {
142-
return errors.New("failed to find generic_fmodret_override")
143-
}
144-
spec.AttachTo = load.Attach
145-
disableProg(coll, "generic_kprobe_override")
146-
} else {
147-
disableProg(coll, "generic_fmodret_override")
148-
}
149-
}
150-
return nil
151-
}
152-
}
153-
154130
func kprobeAttach(load *Program, prog *ebpf.Program, spec *ebpf.ProgramSpec,
155131
symbol string, bpfDir string, extra ...string) (unloader.Unloader, error) {
156132
var linkFn func() (link.Link, error)
@@ -179,105 +155,10 @@ func kprobeAttach(load *Program, prog *ebpf.Program, spec *ebpf.ProgramSpec,
179155
}, nil
180156
}
181157

182-
func kprobeAttachOverride(load *Program, bpfDir string,
183-
coll *ebpf.Collection, collSpec *ebpf.CollectionSpec) error {
184-
185-
spec, ok := collSpec.Programs["generic_kprobe_override"]
186-
if !ok {
187-
return errors.New("spec for generic_kprobe_override program not found")
188-
}
189-
190-
prog, ok := coll.Programs["generic_kprobe_override"]
191-
if !ok {
192-
return errors.New("program generic_kprobe_override not found")
193-
}
194-
195-
prog, err := prog.Clone()
196-
if err != nil {
197-
return fmt.Errorf("failed to clone generic_kprobe_override program: %w", err)
198-
}
199-
200-
pinPath := filepath.Join(bpfDir, load.PinPath, "prog_override")
201-
202-
if err := prog.Pin(pinPath); err != nil {
203-
return fmt.Errorf("pinning '%s' to '%s' failed: %w", load.Label, pinPath, err)
204-
}
205-
206-
load.unloaderOverride, err = kprobeAttach(load, prog, spec, load.Attach, bpfDir, "override")
207-
if err != nil {
208-
logger.GetLogger().Warn("Failed to attach override program", logfields.Error, err)
209-
}
210-
211-
return nil
212-
}
213-
214-
func fmodretAttachOverride(load *Program, bpfDir string,
215-
coll *ebpf.Collection, collSpec *ebpf.CollectionSpec) error {
216-
217-
spec, ok := collSpec.Programs["generic_fmodret_override"]
218-
if !ok {
219-
return errors.New("spec for generic_fmodret_override program not found")
220-
}
221-
222-
prog, ok := coll.Programs["generic_fmodret_override"]
223-
if !ok {
224-
return errors.New("program generic_fmodret_override not found")
225-
}
226-
227-
prog, err := prog.Clone()
228-
if err != nil {
229-
return fmt.Errorf("failed to clone generic_fmodret_override program: %w", err)
230-
}
231-
232-
pinPath := filepath.Join(bpfDir, filepath.Join(load.PinPath, "prog_override"))
233-
234-
if err := prog.Pin(pinPath); err != nil {
235-
return fmt.Errorf("pinning '%s' to '%s' failed: %w", load.Label, pinPath, err)
236-
}
237-
238-
linkFn := func() (link.Link, error) {
239-
return link.AttachTracing(link.TracingOptions{
240-
Program: prog,
241-
})
242-
}
243-
244-
lnk, err := linkFn()
245-
if err != nil {
246-
return fmt.Errorf("attaching '%s' failed: %w", spec.Name, err)
247-
}
248-
249-
err = linkPin(lnk, bpfDir, load, "override")
250-
if err != nil {
251-
lnk.Close()
252-
return err
253-
}
254-
255-
load.unloaderOverride = &unloader.RelinkUnloader{
256-
UnloadProg: unloader.ProgUnloader{Prog: prog}.Unload,
257-
IsLinked: true,
258-
Link: lnk,
259-
RelinkFn: linkFn,
260-
}
261-
262-
return nil
263-
}
264-
265158
func KprobeAttach(load *Program, bpfDir string) AttachFunc {
266-
return func(coll *ebpf.Collection, collSpec *ebpf.CollectionSpec,
159+
return func(_ *ebpf.Collection, _ *ebpf.CollectionSpec,
267160
prog *ebpf.Program, spec *ebpf.ProgramSpec) (unloader.Unloader, error) {
268161

269-
if load.Override {
270-
if load.OverrideFmodRet {
271-
if err := fmodretAttachOverride(load, bpfDir, coll, collSpec); err != nil {
272-
return nil, err
273-
}
274-
} else {
275-
if err := kprobeAttachOverride(load, bpfDir, coll, collSpec); err != nil {
276-
return nil, err
277-
}
278-
}
279-
}
280-
281162
return kprobeAttach(load, prog, spec, load.Attach, bpfDir)
282163
}
283164
}
@@ -569,46 +450,14 @@ func multiKprobeAttach(load *Program, prog *ebpf.Program,
569450
}
570451

571452
func MultiKprobeAttach(load *Program, bpfDir string) AttachFunc {
572-
return func(coll *ebpf.Collection, collSpec *ebpf.CollectionSpec,
453+
return func(_ *ebpf.Collection, _ *ebpf.CollectionSpec,
573454
prog *ebpf.Program, spec *ebpf.ProgramSpec) (unloader.Unloader, error) {
574455

575456
data, ok := load.AttachData.(*MultiKprobeAttachData)
576457
if !ok {
577458
return nil, fmt.Errorf("attaching '%s' failed: wrong attach data", spec.Name)
578459
}
579460

580-
if load.Override {
581-
progOverrideSpec, ok := collSpec.Programs["generic_kprobe_override"]
582-
if ok {
583-
progOverrideSpec.Type = ebpf.UnspecifiedProgram
584-
}
585-
586-
progOverride, ok := coll.Programs["generic_kprobe_override"]
587-
if !ok {
588-
return nil, fmt.Errorf("program for section '%s' not found", load.Label)
589-
}
590-
591-
progOverride, err := progOverride.Clone()
592-
if err != nil {
593-
return nil, fmt.Errorf("failed to clone program '%s': %w", load.Label, err)
594-
}
595-
596-
pinPath := filepath.Join(bpfDir, filepath.Join(load.PinPath, "prog_override"))
597-
598-
if err := progOverride.Pin(pinPath); err != nil {
599-
return nil, fmt.Errorf("pinning '%s' to '%s' failed: %w", load.Label, pinPath, err)
600-
}
601-
602-
opts := link.KprobeMultiOptions{
603-
Symbols: data.Overrides,
604-
}
605-
606-
load.unloaderOverride, err = multiKprobeAttach(load, progOverride, progOverrideSpec, opts, bpfDir, "override")
607-
if err != nil {
608-
logger.GetLogger().Warn("Failed to attach override program", logfields.Error, err)
609-
}
610-
}
611-
612461
opts := link.KprobeMultiOptions{
613462
Symbols: data.Symbols,
614463
Cookies: data.Cookies,
@@ -637,8 +486,10 @@ func LoadRawTracepointProgram(bpfDir string, load *Program, maps []*Map, verbose
637486
func LoadKprobeProgram(bpfDir string, load *Program, maps []*Map, verbose int) error {
638487
opts := &LoadOpts{
639488
Attach: KprobeAttach(load, bpfDir),
640-
Open: KprobeOpen(load),
641-
Maps: maps,
489+
Open: func(coll *ebpf.CollectionSpec) error {
490+
return nil
491+
},
492+
Maps: maps,
642493
}
643494
return loadProgram(bpfDir, load, opts, verbose)
644495
}
@@ -685,8 +536,10 @@ func LoadUprobeProgram(bpfDir string, load *Program, maps []*Map, verbose int) e
685536
func LoadMultiKprobeProgram(bpfDir string, load *Program, maps []*Map, verbose int) error {
686537
opts := &LoadOpts{
687538
Attach: MultiKprobeAttach(load, bpfDir),
688-
Open: KprobeOpen(load),
689-
Maps: maps,
539+
Open: func(coll *ebpf.CollectionSpec) error {
540+
return nil
541+
},
542+
Maps: maps,
690543
}
691544
return loadProgram(bpfDir, load, opts, verbose)
692545
}

0 commit comments

Comments
 (0)