Skip to content

Commit 0c5943d

Browse files
Seas0brb
authored andcommitted
Fix path for available_filter_functions access
Updated the path for accessing available filter functions to comply with Linux v6.17 changes. Added error handling for both new and old paths. Signed-off-by: Seas0 <[email protected]>
1 parent 2006fb5 commit 0c5943d

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

internal/pwru/utils.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,15 @@ type Funcs map[string]int
2525
// to attach kprobes.
2626
func getAvailableFilterFunctions() (map[string]struct{}, error) {
2727
availableFuncs := make(map[string]struct{})
28-
f, err := os.Open("/sys/kernel/debug/tracing/available_filter_functions")
28+
var f *os.File
29+
var err error
30+
// Linux v6.17+ enforce this new path for the tracing functionality
31+
f, err = os.Open("/sys/kernel/tracing/available_filter_functions")
2932
if err != nil {
30-
return nil, fmt.Errorf("failed to open: %v", err)
33+
f, err = os.Open("/sys/kernel/debug/tracing/available_filter_functions")
34+
if err != nil {
35+
return nil, fmt.Errorf("failed to open: %v", err)
36+
}
3137
}
3238
defer f.Close()
3339

@@ -59,7 +65,7 @@ func GetFuncs(pattern string, spec *btf.Spec, kmods []string, kprobeMulti bool)
5965
var availableFuncs map[string]struct{}
6066
availableFuncs, err = getAvailableFilterFunctions()
6167
if err != nil {
62-
log.Printf("Failed to retrieve available ftrace functions (is /sys/kernel/debug/tracing mounted?): %s", err)
68+
log.Printf("Failed to retrieve available ftrace functions (is /sys/kernel/tracing or /sys/kernel/debug/tracing mounted?): %s", err)
6369
}
6470

6571
iters := []iterator{{"", spec.All()}}

0 commit comments

Comments
 (0)