Commit adf6b57c authored by Menglong Dong's avatar Menglong Dong Committed by Alexei Starovoitov
Browse files

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: default avatarMenglong Dong <dongml2@chinatelecom.cn>
Link: https://lore.kernel.org/r/20250904021011.14069-3-dongml2@chinatelecom.cn


Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 8bad31ed
Loading
Loading
Loading
Loading
+19 −0
Original line number Diff line number Diff line
@@ -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;
}