samples/bpf: Fix tracex2 error: No such file or directory
authorRong Tao <rongtao@cestc.cn>
Sat, 29 Oct 2022 09:11:13 +0000 (17:11 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 4 Nov 2022 21:57:31 +0000 (14:57 -0700)
since commit c504e5c2f964("net: skb: introduce kfree_skb_reason()")
kfree_skb() is replaced by kfree_skb_reason() and kfree_skb() is set to
the inline function. So, we replace kprobe/kfree_skb with
kprobe/kfree_skb_reason to solve the tracex2 error.

 $ cd samples/bpf
 $ sudo ./tracex2
 libbpf: prog 'bpf_prog2': failed to create kprobe 'kfree_skb+0x0' perf event: No such file or directory
 ERROR: bpf_program__attach failed

Signed-off-by: Rong Tao <rongtao@cestc.cn>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/tencent_0F0DAE84C0B3C42E0B550E5E9F47A9114D09@qq.com
samples/bpf/tracex2_kern.c
samples/bpf/tracex2_user.c

index 5bc696b..93e0b76 100644 (file)
@@ -22,14 +22,14 @@ struct {
 /* kprobe is NOT a stable ABI. If kernel internals change this bpf+kprobe
  * example will no longer be meaningful
  */
-SEC("kprobe/kfree_skb")
+SEC("kprobe/kfree_skb_reason")
 int bpf_prog2(struct pt_regs *ctx)
 {
        long loc = 0;
        long init_val = 1;
        long *value;
 
-       /* read ip of kfree_skb caller.
+       /* read ip of kfree_skb_reason caller.
         * non-portable version of __builtin_return_address(0)
         */
        BPF_KPROBE_READ_RET_IP(loc, ctx);
index dd6205c..089e408 100644 (file)
@@ -146,7 +146,8 @@ int main(int ac, char **argv)
        signal(SIGINT, int_exit);
        signal(SIGTERM, int_exit);
 
-       /* start 'ping' in the background to have some kfree_skb events */
+       /* start 'ping' in the background to have some kfree_skb_reason
+        * events */
        f = popen("ping -4 -c5 localhost", "r");
        (void) f;