diff options
| author | Menglong Dong <menglong8.dong@gmail.com> | 2025-09-04 10:10:10 +0800 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2025-09-04 09:00:25 -0700 |
| commit | adf6b57ce46ce685a65d54397c4389df754b6a99 (patch) | |
| tree | 9f08116d13b9050aa4249cb02ae9b9bac0303bf6 /tools/testing/selftests | |
| parent | selftests/bpf: move get_ksyms and get_addrs to trace_helpers.c (diff) | |
| download | linux-adf6b57ce46ce685a65d54397c4389df754b6a99.tar.gz linux-adf6b57ce46ce685a65d54397c4389df754b6a99.zip | |
selftests/bpf: skip recursive functions for kprobe_multi
Some functions is recursive for the kprobe_multi and impact the benchmark
results. So just skip them.
Signed-off-by: Menglong Dong <dongml2@chinatelecom.cn>
Link: https://lore.kernel.org/r/20250904021011.14069-3-dongml2@chinatelecom.cn
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'tools/testing/selftests')
| -rw-r--r-- | tools/testing/selftests/bpf/trace_helpers.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/testing/selftests/bpf/trace_helpers.c b/tools/testing/selftests/bpf/trace_helpers.c index d24baf244d1f..9577979bd84d 100644 --- a/tools/testing/selftests/bpf/trace_helpers.c +++ b/tools/testing/selftests/bpf/trace_helpers.c @@ -19,6 +19,7 @@ #include <gelf.h> #include "bpf/hashmap.h" #include "bpf/libbpf_internal.h" +#include "bpf_util.h" #define TRACEFS_PIPE "/sys/kernel/tracing/trace_pipe" #define DEBUGFS_PIPE "/sys/kernel/debug/tracing/trace_pipe" @@ -540,8 +541,20 @@ static bool is_invalid_entry(char *buf, bool kernel) return false; } +static const char * const trace_blacklist[] = { + "migrate_disable", + "migrate_enable", + "rcu_read_unlock_strict", + "preempt_count_add", + "preempt_count_sub", + "__rcu_read_lock", + "__rcu_read_unlock", +}; + static bool skip_entry(char *name) { + int i; + /* * We attach to almost all kernel functions and some of them * will cause 'suspicious RCU usage' when fprobe is attached @@ -559,6 +572,12 @@ static bool skip_entry(char *name) if (!strncmp(name, "__ftrace_invalid_address__", sizeof("__ftrace_invalid_address__") - 1)) return true; + + for (i = 0; i < ARRAY_SIZE(trace_blacklist); i++) { + if (!strcmp(name, trace_blacklist[i])) + return true; + } + return false; } |
