]> git.itanic.dy.fi Git - linux-stable/commit
perf record: Fix BTF type checks in the off-cpu profiling
authorNamhyung Kim <namhyung@kernel.org>
Fri, 22 Sep 2023 23:44:44 +0000 (16:44 -0700)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 28 Sep 2023 03:45:33 +0000 (20:45 -0700)
commit0e501a65d35bf72414379fed0e31a0b6b81ab57d
tree38067adcd1d705e3fc1f99d769fb623947b09db9
parentbb2e04d4499c611382aeb75063cf7f185cf20197
perf record: Fix BTF type checks in the off-cpu profiling

The BTF func proto for a tracepoint has one more argument than the
actual tracepoint function since it has a context argument at the
begining.  So it should compare to 5 when the tracepoint has 4
arguments.

  typedef void (*btf_trace_sched_switch)(void *, bool, struct task_struct *, struct task_struct *, unsigned int);

Also, recent change in the perf tool would use a hand-written minimal
vmlinux.h to generate BTF in the skeleton.  So it won't have the info
of the tracepoint.  Anyway it should use the kernel's vmlinux BTF to
check the type in the kernel.

Fixes: b36888f71c85 ("perf record: Handle argument change in sched_switch")
Reviewed-by: Ian Rogers <irogers@google.com>
Acked-by: Song Liu <song@kernel.org>
Cc: Hao Luo <haoluo@google.com>
CC: bpf@vger.kernel.org
Link: https://lore.kernel.org/r/20230922234444.3115821-1-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/bpf_off_cpu.c