selftests/bpf: Filter out default_idle from kprobe_multi bench
authorJiri Olsa <jolsa@kernel.org>
Wed, 16 Nov 2022 10:02:27 +0000 (11:02 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Mon, 21 Nov 2022 19:52:01 +0000 (11:52 -0800)
Alexei hit following rcu warning when running prog_test -j.

  [  128.049567] WARNING: suspicious RCU usage
  [  128.049569] 6.1.0-rc2 #912 Tainted: G           O
  ...
  [  128.050944]  kprobe_multi_link_handler+0x6c/0x1d0
  [  128.050947]  ? kprobe_multi_link_handler+0x42/0x1d0
  [  128.050950]  ? __cpuidle_text_start+0x8/0x8
  [  128.050952]  ? __cpuidle_text_start+0x8/0x8
  [  128.050958]  fprobe_handler.part.1+0xac/0x150
  [  128.050964]  0xffffffffa02130c8
  [  128.050991]  ? default_idle+0x5/0x20
  [  128.050998]  default_idle+0x5/0x20

It's caused by bench test attaching kprobe_multi link to default_idle
function, which is not executed in rcu safe context so the kprobe
handler on top of it will trigger the rcu warning.

Filtering out default_idle function from the bench test.

Reported-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20221116100228.2064612-1-jolsa@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c

index d457a55..b439289 100644 (file)
@@ -358,10 +358,12 @@ static int get_syms(char ***symsp, size_t *cntp)
                 * We attach to almost all kernel functions and some of them
                 * will cause 'suspicious RCU usage' when fprobe is attached
                 * to them. Filter out the current culprits - arch_cpu_idle
-                * and rcu_* functions.
+                * default_idle and rcu_* functions.
                 */
                if (!strcmp(name, "arch_cpu_idle"))
                        continue;
+               if (!strcmp(name, "default_idle"))
+                       continue;
                if (!strncmp(name, "rcu_", 4))
                        continue;
                if (!strcmp(name, "bpf_dispatcher_xdp_func"))