Skip to content

Commit

Permalink
tetragon: Remove Maps from sensor.Sensor
Browse files Browse the repository at this point in the history
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
  • Loading branch information
olsajiri committed Aug 22, 2024
1 parent cfe2cf1 commit 9c31aef
Show file tree
Hide file tree
Showing 11 changed files with 70 additions and 210 deletions.
2 changes: 0 additions & 2 deletions pkg/sensors/base/base.go
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,6 @@ func GetInitialSensor() *sensors.Sensor {
sensorInit.Do(func() {
setupPrograms()
sensor.Progs = GetDefaultPrograms(option.CgroupRateEnabled())
sensor.Maps = GetDefaultMaps(option.CgroupRateEnabled())
})
return &sensor
}
Expand All @@ -178,7 +177,6 @@ func GetInitialSensorTest() *sensors.Sensor {
sensorTestInit.Do(func() {
setupPrograms()
sensorTest.Progs = GetDefaultPrograms(true)
sensorTest.Maps = GetDefaultMaps(true)
})
return &sensorTest
}
Expand Down
12 changes: 4 additions & 8 deletions pkg/sensors/load.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ func (s *Sensor) Load(bpfDir string) error {

// Add the *loaded* programs and maps, so they can be unloaded later
progsAdd(s.Progs)
AllMaps = append(AllMaps, s.Maps...)

l.WithField("sensor", s.Name).Infof("Loaded BPF maps and events for sensor successfully")
s.Loaded = true
Expand Down Expand Up @@ -196,27 +195,24 @@ func (s *Sensor) FindPrograms() error {
if err := s.findProgram(p); err != nil {
return err
}
}
for _, m := range s.Maps {
if err := s.findProgram(m.Prog); err != nil {
return err
for _, m := range p.PinMap {
if err := s.findProgram(m.Prog); err != nil {
return err
}
}
}
return nil
}

func mergeSensors(sensors []*Sensor) *Sensor {
var progs []*program.Program
var maps []*program.Map

for _, s := range sensors {
progs = append(progs, s.Progs...)
maps = append(maps, s.Maps...)
}
return &Sensor{
Name: "__main__",
Progs: progs,
Maps: maps,
}
}

Expand Down
9 changes: 2 additions & 7 deletions pkg/sensors/sensors.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,6 @@ type Sensor struct {
Name string
// Progs are all the BPF programs that exist on the filesystem.
Progs []*program.Program
// Maps are all the BPF Maps that the progs use.
Maps []*program.Map
// Loaded indicates whether the sensor has been Loaded.
Loaded bool
// Destroyed indicates whether the sensor had been destroyed.
Expand Down Expand Up @@ -84,19 +82,16 @@ type SensorHook func() error

func SensorCombine(name string, sensors ...*Sensor) *Sensor {
progs := []*program.Program{}
maps := []*program.Map{}
for _, s := range sensors {
progs = append(progs, s.Progs...)
maps = append(maps, s.Maps...)
}
return SensorBuilder(name, progs, maps)
return SensorBuilder(name, progs)
}

func SensorBuilder(name string, p []*program.Program, m []*program.Map) *Sensor {
func SensorBuilder(name string, p []*program.Program) *Sensor {
return &Sensor{
Name: name,
Progs: p,
Maps: m,
}
}

Expand Down
8 changes: 0 additions & 8 deletions pkg/sensors/test/cgroups.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,18 +50,10 @@ func getCgroupPrograms() []*program.Program {
return progs
}

func getCgroupMaps() []*program.Map {
maps := []*program.Map{
GetCgroupsTrackingMap(),
}
return maps
}

// GetCgroupSensor returns the Cgroups base sensor
func GetCgroupSensor() *sensors.Sensor {
return &sensors.Sensor{
Name: "test-sensor-cgroups",
Progs: getCgroupPrograms(),
Maps: getCgroupMaps(),
}
}
3 changes: 1 addition & 2 deletions pkg/sensors/test/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ func GetTestSensor() *sensors.Sensor {
sensors.PathJoin(sensorName, "test_lseek_prog"),
"tracepoint",
)}
maps := []*program.Map{}
sensor := &sensors.Sensor{Name: sensorName, Progs: progs, Maps: maps}
sensor := &sensors.Sensor{Name: sensorName, Progs: progs}
return sensor
}
4 changes: 0 additions & 4 deletions pkg/sensors/tracing/enforcer.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,6 @@ func (kp *enforcerPolicy) createEnforcerSensor(
// register enforcer sensor
var load *program.Program
var progs []*program.Program
var maps []*program.Map
specOpts, err := getSpecOptions(opts)
if err != nil {
return nil, fmt.Errorf("failed to get spec options: %s", err)
Expand Down Expand Up @@ -318,8 +317,6 @@ func (kp *enforcerPolicy) createEnforcerSensor(
enforcerDataMap := enforcerMap(policyName, progs...)
enforcerDataMap.SetMaxEntries(enforcerMapMaxEntries)

maps = append(maps, enforcerDataMap)

if ok := kp.enforcerAdd(name, kh); !ok {
return nil, fmt.Errorf("failed to add enforcer: '%s'", name)
}
Expand All @@ -329,7 +326,6 @@ func (kp *enforcerPolicy) createEnforcerSensor(
return &sensors.Sensor{
Name: "__enforcer__",
Progs: progs,
Maps: maps,
PostUnloadHook: func() error {
if ok := kp.enforcerDel(name); !ok {
logger.GetLogger().Infof("Failed to clean up enforcer sensor '%s'", name)
Expand Down
Loading

0 comments on commit 9c31aef

Please sign in to comment.