Skip to content

Commit 3b9079b

Browse files
committed
tetragon: Remove superficial program.MapLoad.Index
There's no need to store Index for the map load, the Load function carries it already. While at it adding more detailed error (map name) in case map load fails. Signed-off-by: Jiri Olsa <[email protected]>
1 parent e3c38df commit 3b9079b

File tree

9 files changed

+69
-98
lines changed

9 files changed

+69
-98
lines changed

pkg/sensors/program/loader_linux.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -962,8 +962,8 @@ func doLoadProgram(
962962
pinPath = pm.PinPath
963963
}
964964
if m, ok := coll.Maps[mapLoad.Name]; ok {
965-
if err := mapLoad.Load(m, pinPath, mapLoad.Index); err != nil {
966-
return nil, err
965+
if err := mapLoad.Load(m, pinPath); err != nil {
966+
return nil, fmt.Errorf("map load for %s failed: %w", mapLoad.Name, err)
967967
}
968968
} else {
969969
return nil, fmt.Errorf("populating map failed as map '%s' was not found from collection", mapLoad.Name)

pkg/sensors/program/loader_windows.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ func doLoadProgram(
198198
pinPath = pm.PinPath
199199
}
200200
if m, ok := coll.Maps[mapLoad.Name]; ok {
201-
if err := mapLoad.Load(m, pinPath, mapLoad.Index); err != nil {
201+
if err := mapLoad.Load(m, pinPath); err != nil {
202202
return nil, err
203203
}
204204
} else {

pkg/sensors/program/program.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,8 @@ func GetProgramInfo(l *Program) (program, label, prog string) {
6868
}
6969

7070
type MapLoad struct {
71-
Index uint32
72-
Name string
73-
Load func(m *ebpf.Map, pinPathPrefix string, index uint32) error
71+
Name string
72+
Load func(m *ebpf.Map, pinPathPrefix string) error
7473
}
7574

7675
type MultiKprobeAttachData struct {

pkg/sensors/tracing/generickprobe.go

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,10 +1109,9 @@ func loadSingleKprobeSensor(id idtable.EntryID, bpfDir string, load *program.Pro
11091109
var configData bytes.Buffer
11101110
binary.Write(&configData, binary.LittleEndian, gk.loadArgs.config)
11111111
config := &program.MapLoad{
1112-
Index: 0,
1113-
Name: "config_map",
1114-
Load: func(m *ebpf.Map, _ string, index uint32) error {
1115-
return m.Update(index, configData.Bytes()[:], ebpf.UpdateAny)
1112+
Name: "config_map",
1113+
Load: func(m *ebpf.Map, _ string) error {
1114+
return m.Update(uint32(0), configData.Bytes()[:], ebpf.UpdateAny)
11161115
},
11171116
}
11181117
load.MapLoad = append(load.MapLoad, config)
@@ -1141,10 +1140,9 @@ func loadMultiKprobeSensor(ids []idtable.EntryID, bpfDir string, load *program.P
11411140

11421141
binary.Write(&bin_buf[index], binary.LittleEndian, gk.loadArgs.config)
11431142
config := &program.MapLoad{
1144-
Index: uint32(index),
1145-
Name: "config_map",
1146-
Load: func(m *ebpf.Map, _ string, index uint32) error {
1147-
return m.Update(index, bin_buf[index].Bytes()[:], ebpf.UpdateAny)
1143+
Name: "config_map",
1144+
Load: func(m *ebpf.Map, _ string) error {
1145+
return m.Update(uint32(index), bin_buf[index].Bytes()[:], ebpf.UpdateAny)
11481146
},
11491147
}
11501148
load.MapLoad = append(load.MapLoad, config)

pkg/sensors/tracing/genericlsm.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,9 @@ func (k *observerLsmSensor) LoadProbe(args sensors.LoadProbeArgs) error {
9595
var configData bytes.Buffer
9696
binary.Write(&configData, binary.LittleEndian, gl.config)
9797
config := &program.MapLoad{
98-
Index: 0,
99-
Name: "config_map",
100-
Load: func(m *ebpf.Map, _ string, index uint32) error {
101-
return m.Update(index, configData.Bytes()[:], ebpf.UpdateAny)
98+
Name: "config_map",
99+
Load: func(m *ebpf.Map, _ string) error {
100+
return m.Update(uint32(0), configData.Bytes()[:], ebpf.UpdateAny)
102101
},
103102
}
104103
args.Load.MapLoad = append(args.Load.MapLoad, config)

pkg/sensors/tracing/generictracepoint.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -788,10 +788,9 @@ func LoadGenericTracepointSensor(bpfDir string, load *program.Program, maps []*p
788788
var binBuf bytes.Buffer
789789
binary.Write(&binBuf, binary.LittleEndian, *config)
790790
cfg := &program.MapLoad{
791-
Index: 0,
792-
Name: "config_map",
793-
Load: func(m *ebpf.Map, _ string, index uint32) error {
794-
return m.Update(index, binBuf.Bytes()[:], ebpf.UpdateAny)
791+
Name: "config_map",
792+
Load: func(m *ebpf.Map, _ string) error {
793+
return m.Update(uint32(0), binBuf.Bytes()[:], ebpf.UpdateAny)
795794
},
796795
}
797796
load.MapLoad = append(load.MapLoad, cfg)

pkg/sensors/tracing/genericuprobe.go

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -126,17 +126,15 @@ func loadSingleUprobeSensor(uprobeEntry *genericUprobe, args sensors.LoadProbeAr
126126

127127
mapLoad := []*program.MapLoad{
128128
{
129-
Index: 0,
130-
Name: "config_map",
131-
Load: func(m *ebpf.Map, _ string, index uint32) error {
132-
return m.Update(index, configData.Bytes()[:], ebpf.UpdateAny)
129+
Name: "config_map",
130+
Load: func(m *ebpf.Map, _ string) error {
131+
return m.Update(uint32(0), configData.Bytes()[:], ebpf.UpdateAny)
133132
},
134133
},
135134
{
136-
Index: 0,
137-
Name: "filter_map",
138-
Load: func(m *ebpf.Map, _ string, index uint32) error {
139-
return m.Update(index, selBuff[:], ebpf.UpdateAny)
135+
Name: "filter_map",
136+
Load: func(m *ebpf.Map, _ string) error {
137+
return m.Update(uint32(0), selBuff[:], ebpf.UpdateAny)
140138
},
141139
},
142140
}
@@ -172,17 +170,15 @@ func loadMultiUprobeSensor(ids []idtable.EntryID, args sensors.LoadProbeArgs) er
172170

173171
mapLoad := []*program.MapLoad{
174172
{
175-
Index: uint32(index),
176-
Name: "config_map",
177-
Load: func(m *ebpf.Map, _ string, index uint32) error {
178-
return m.Update(index, configData.Bytes()[:], ebpf.UpdateAny)
173+
Name: "config_map",
174+
Load: func(m *ebpf.Map, _ string) error {
175+
return m.Update(uint32(index), configData.Bytes()[:], ebpf.UpdateAny)
179176
},
180177
},
181178
{
182-
Index: uint32(index),
183-
Name: "filter_map",
184-
Load: func(m *ebpf.Map, _ string, index uint32) error {
185-
return m.Update(index, selBuff[:], ebpf.UpdateAny)
179+
Name: "filter_map",
180+
Load: func(m *ebpf.Map, _ string) error {
181+
return m.Update(uint32(index), selBuff[:], ebpf.UpdateAny)
186182
},
187183
},
188184
}

pkg/sensors/tracing/policyhandler_linux.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,8 @@ func (pi *policyInfo) policyConfMap(prog *program.Program) *program.Map {
7171
}
7272
pi.policyConf = program.MapBuilderPolicy("policy_conf", prog)
7373
prog.MapLoad = append(prog.MapLoad, &program.MapLoad{
74-
Index: 0,
75-
Name: policyconf.PolicyConfMapName,
76-
Load: func(m *ebpf.Map, _ string, _ uint32) error {
74+
Name: policyconf.PolicyConfMapName,
75+
Load: func(m *ebpf.Map, _ string) error {
7776
mode := policyconf.EnforceMode
7877
if pi.specOpts != nil {
7978
mode = pi.specOpts.policyMode

pkg/sensors/tracing/selectors.go

Lines changed: 38 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -22,121 +22,102 @@ func selectorsMaploads(ks *selectors.KernelSelectorState, index uint32) []*progr
2222
selBuff := ks.Buffer()
2323
maps := []*program.MapLoad{
2424
{
25-
Index: index,
26-
Name: "filter_map",
27-
Load: func(m *ebpf.Map, _ string, index uint32) error {
25+
Name: "filter_map",
26+
Load: func(m *ebpf.Map, _ string) error {
2827
return m.Update(index, selBuff[:], ebpf.UpdateAny)
2928
},
3029
}, {
31-
Index: 0,
32-
Name: "argfilter_maps",
33-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
30+
Name: "argfilter_maps",
31+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
3432
return populateArgFilterMaps(ks, pinPathPrefix, outerMap)
3533
},
3634
}, {
37-
Index: 0,
38-
Name: "addr4lpm_maps",
39-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
35+
Name: "addr4lpm_maps",
36+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
4037
return populateAddr4FilterMaps(ks, pinPathPrefix, outerMap)
4138
},
4239
}, {
43-
Index: 0,
44-
Name: "addr6lpm_maps",
45-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
40+
Name: "addr6lpm_maps",
41+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
4642
return populateAddr6FilterMaps(ks, pinPathPrefix, outerMap)
4743
},
4844
}, {
49-
Index: 0,
50-
Name: "tg_mb_sel_opts",
51-
Load: func(outerMap *ebpf.Map, _ string, _ uint32) error {
45+
Name: "tg_mb_sel_opts",
46+
Load: func(outerMap *ebpf.Map, _ string) error {
5247
return populateMatchBinariesMaps(ks, outerMap)
5348
},
5449
}, {
55-
Index: 0,
56-
Name: "tg_mb_paths",
57-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
50+
Name: "tg_mb_paths",
51+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
5852
return populateMatchBinariesPathsMaps(ks, pinPathPrefix, outerMap)
5953
},
6054
}, {
61-
Index: 0,
62-
Name: "string_prefix_maps",
63-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
55+
Name: "string_prefix_maps",
56+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
6457
return populateStringPrefixFilterMaps(ks, pinPathPrefix, outerMap)
6558
},
6659
}, {
67-
Index: 0,
68-
Name: "string_postfix_maps",
69-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
60+
Name: "string_postfix_maps",
61+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
7062
return populateStringPostfixFilterMaps(ks, pinPathPrefix, outerMap)
7163
},
7264
}, {
73-
Index: 0,
74-
Name: "string_maps_0",
75-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
65+
Name: "string_maps_0",
66+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
7667
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 0)
7768
},
7869
}, {
79-
Index: 0,
80-
Name: "string_maps_1",
81-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
70+
Name: "string_maps_1",
71+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
8272
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 1)
8373
},
8474
}, {
85-
Index: 0,
86-
Name: "string_maps_2",
87-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
75+
Name: "string_maps_2",
76+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
8877
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 2)
8978
},
9079
}, {
91-
Index: 0,
92-
Name: "string_maps_3",
93-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
80+
Name: "string_maps_3",
81+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
9482
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 3)
9583
},
9684
}, {
97-
Index: 0,
98-
Name: "string_maps_4",
99-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
85+
Name: "string_maps_4",
86+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
10087
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 4)
10188
},
10289
}, {
103-
Index: 0,
104-
Name: "string_maps_5",
105-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
90+
Name: "string_maps_5",
91+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
10692
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 5)
10793
},
10894
}, {
109-
Index: 0,
110-
Name: "string_maps_6",
111-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
95+
Name: "string_maps_6",
96+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
11297
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 6)
11398
},
11499
}, {
115-
Index: 0,
116-
Name: "string_maps_7",
117-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
100+
Name: "string_maps_7",
101+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
118102
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 7)
119103
},
120104
},
121105
}
122106
if kernels.MinKernelVersion("5.11") {
123107
maps = append(maps, []*program.MapLoad{
124108
{
125-
Index: 0,
126-
Name: "string_maps_8",
127-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
109+
Name: "string_maps_8",
110+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
128111
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 8)
129112
},
130113
}, {
131-
Index: 0,
132-
Name: "string_maps_9",
133-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
114+
Name: "string_maps_9",
115+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
134116
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 9)
135117
},
136118
}, {
137-
Index: 0,
138-
Name: "string_maps_10",
139-
Load: func(outerMap *ebpf.Map, pinPathPrefix string, _ uint32) error {
119+
Name: "string_maps_10",
120+
Load: func(outerMap *ebpf.Map, pinPathPrefix string) error {
140121
return populateStringFilterMaps(ks, pinPathPrefix, outerMap, 10)
141122
},
142123
},

0 commit comments

Comments
 (0)