2022-10-29 09:30:59

by Rong Tao

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

From: Rong Tao <[email protected]>

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

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;

--
2.31.1



2022-11-04 22:21:52

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH bpf-next] samples/bpf: Fix tracex2 error: No such file or directory

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <[email protected]>:

On Sat, 29 Oct 2022 17:11:13 +0800 you wrote:
> From: Rong Tao <[email protected]>
>
> 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!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html