[bpf-next] samples/bpf: Fix tracex2 error: No such file or directory
Commit Message
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
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!
@@ -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);
@@ -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;