[bpf-next] samples/bpf: Fix tracex2 error: No such file or directory

Message ID tencent_0F0DAE84C0B3C42E0B550E5E9F47A9114D09@qq.com
State New
Headers
Series [bpf-next] samples/bpf: Fix tracex2 error: No such file or directory |

Commit Message

Rong Tao Oct. 29, 2022, 9:11 a.m. UTC
  From: Rong Tao <rongtao@cestc.cn>

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>
---
 samples/bpf/tracex2_kern.c | 4 ++--
 samples/bpf/tracex2_user.c | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)
  

Comments

patchwork-bot+netdevbpf@kernel.org Nov. 4, 2022, 10 p.m. UTC | #1
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

On Sat, 29 Oct 2022 17:11:13 +0800 you wrote:
> From: Rong Tao <rongtao@cestc.cn>
> 
> 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.
> 
> [...]

Here is the summary with links:
  - [bpf-next] samples/bpf: Fix tracex2 error: No such file or directory
    https://git.kernel.org/bpf/bpf-next/c/1baa7e380021

You are awesome, thank you!
  

Patch

diff --git a/samples/bpf/tracex2_kern.c b/samples/bpf/tracex2_kern.c
index 5bc696bac27d..93e0b7680b4f 100644
--- a/samples/bpf/tracex2_kern.c
+++ b/samples/bpf/tracex2_kern.c
@@ -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);
diff --git a/samples/bpf/tracex2_user.c b/samples/bpf/tracex2_user.c
index dd6205c6b6a7..089e408abd7a 100644
--- a/samples/bpf/tracex2_user.c
+++ b/samples/bpf/tracex2_user.c
@@ -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;