linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info
@ 2025-06-03 15:43 Tao Chen
  2025-06-03 15:43 ` [PATCH bpf-next v3 2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test Tao Chen
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Tao Chen @ 2025-06-03 15:43 UTC (permalink / raw)
  To: ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
	john.fastabend, kpsingh, sdf, qmo, jolsa
  Cc: bpf, linux-kernel, Tao Chen

After commit 68ca5d4eebb8 ("bpf: support BPF cookie in raw tracepoint
(raw_tp, tp_btf) programs"), we can show the cookie in bpf_link_info
like kprobe etc.

Acked-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Tao Chen <chen.dylane@linux.dev>
---
 include/uapi/linux/bpf.h       | 2 ++
 kernel/bpf/syscall.c           | 1 +
 tools/include/uapi/linux/bpf.h | 2 ++
 3 files changed, 5 insertions(+)

Change list:
- v2 -> v3:
    - use '__u32 :32' to fill the hole.(Yonghong)
    - add double space for plain output.(Quentin)
    - patch1-2 Acked-by Jiri
- v2:
    https://lore.kernel.org/bpf/20250603022610.3005963-1-chen.dylane@linux.dev

- v1 -> v2:
    - fill the hole in bpf_link_info.(Jiri)
- v1:
    https://lore.kernel.org/bpf/20250529165759.2536245-1-chen.dylane@linux.dev

diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h
index 07ee73cdf9..9bd2a5b64b 100644
--- a/include/uapi/linux/bpf.h
+++ b/include/uapi/linux/bpf.h
@@ -6644,6 +6644,8 @@ struct bpf_link_info {
 		struct {
 			__aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
 			__u32 tp_name_len;     /* in/out: tp_name buffer len */
+			__u32 :32;
+			__u64 cookie;
 		} raw_tracepoint;
 		struct {
 			__u32 attach_type;
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 9794446bc8..1c3dbe44ac 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -3687,6 +3687,7 @@ static int bpf_raw_tp_link_fill_link_info(const struct bpf_link *link,
 		return -EINVAL;
 
 	info->raw_tracepoint.tp_name_len = tp_len + 1;
+	info->raw_tracepoint.cookie = raw_tp_link->cookie;
 
 	if (!ubuf)
 		return 0;
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h
index 07ee73cdf9..9bd2a5b64b 100644
--- a/tools/include/uapi/linux/bpf.h
+++ b/tools/include/uapi/linux/bpf.h
@@ -6644,6 +6644,8 @@ struct bpf_link_info {
 		struct {
 			__aligned_u64 tp_name; /* in/out: tp_name buffer ptr */
 			__u32 tp_name_len;     /* in/out: tp_name buffer len */
+			__u32 :32;
+			__u64 cookie;
 		} raw_tracepoint;
 		struct {
 			__u32 attach_type;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH bpf-next v3 2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test
  2025-06-03 15:43 [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info Tao Chen
@ 2025-06-03 15:43 ` Tao Chen
  2025-06-03 15:43 ` [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe Tao Chen
  2025-06-05 18:50 ` [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info patchwork-bot+netdevbpf
  2 siblings, 0 replies; 5+ messages in thread
From: Tao Chen @ 2025-06-03 15:43 UTC (permalink / raw)
  To: ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
	john.fastabend, kpsingh, sdf, qmo, jolsa
  Cc: bpf, linux-kernel, Tao Chen

Adding tests for getting cookie with fill_link_info for raw_tp.

Acked-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Tao Chen <chen.dylane@linux.dev>
---
 .../selftests/bpf/prog_tests/bpf_cookie.c     | 26 ++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
index 6befa87043..0774ae6c1b 100644
--- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
+++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c
@@ -635,10 +635,29 @@ static void tp_btf_subtest(struct test_bpf_cookie *skel)
 	bpf_link__destroy(link);
 }
 
+static int verify_raw_tp_link_info(int fd, u64 cookie)
+{
+	struct bpf_link_info info;
+	int err;
+	u32 len = sizeof(info);
+
+	memset(&info, 0, sizeof(info));
+	err = bpf_link_get_info_by_fd(fd, &info, &len);
+	if (!ASSERT_OK(err, "get_link_info"))
+		return -1;
+
+	if (!ASSERT_EQ(info.type, BPF_LINK_TYPE_RAW_TRACEPOINT, "link_type"))
+		return -1;
+
+	ASSERT_EQ(info.raw_tracepoint.cookie, cookie, "raw_tp_cookie");
+
+	return 0;
+}
+
 static void raw_tp_subtest(struct test_bpf_cookie *skel)
 {
 	__u64 cookie;
-	int prog_fd, link_fd = -1;
+	int err, prog_fd, link_fd = -1;
 	struct bpf_link *link = NULL;
 	LIBBPF_OPTS(bpf_raw_tp_opts, raw_tp_opts);
 	LIBBPF_OPTS(bpf_raw_tracepoint_opts, opts);
@@ -656,6 +675,11 @@ static void raw_tp_subtest(struct test_bpf_cookie *skel)
 		goto cleanup;
 
 	usleep(1); /* trigger */
+
+	err = verify_raw_tp_link_info(link_fd, cookie);
+	if (!ASSERT_OK(err, "verify_raw_tp_link_info"))
+		goto cleanup;
+
 	close(link_fd); /* detach */
 	link_fd = -1;
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe
  2025-06-03 15:43 [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info Tao Chen
  2025-06-03 15:43 ` [PATCH bpf-next v3 2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test Tao Chen
@ 2025-06-03 15:43 ` Tao Chen
  2025-06-03 16:21   ` Quentin Monnet
  2025-06-05 18:50 ` [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info patchwork-bot+netdevbpf
  2 siblings, 1 reply; 5+ messages in thread
From: Tao Chen @ 2025-06-03 15:43 UTC (permalink / raw)
  To: ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
	john.fastabend, kpsingh, sdf, qmo, jolsa
  Cc: bpf, linux-kernel, Tao Chen

Display cookie for raw_tp link probe, in plain mode:

 #bpftool link

22: raw_tracepoint  prog 14
        tp 'sys_enter'  cookie 23925373020405760
        pids test_progs(176)

And in json mode:

 #bpftool link -j | jq

[
  {
    "id": 47,
    "type": "raw_tracepoint",
    "prog_id": 79,
    "tp_name": "sys_enter",
    "cookie": 23925373020405760,
    "pids": [
      {
        "pid": 274,
        "comm": "test_progs"
      }
    ]
  }
]

Signed-off-by: Tao Chen <chen.dylane@linux.dev>
---
 tools/bpf/bpftool/link.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/tools/bpf/bpftool/link.c b/tools/bpf/bpftool/link.c
index 52fd2c9fac..0a0ef3a80a 100644
--- a/tools/bpf/bpftool/link.c
+++ b/tools/bpf/bpftool/link.c
@@ -484,6 +484,7 @@ static int show_link_close_json(int fd, struct bpf_link_info *info)
 	case BPF_LINK_TYPE_RAW_TRACEPOINT:
 		jsonw_string_field(json_wtr, "tp_name",
 				   u64_to_ptr(info->raw_tracepoint.tp_name));
+		jsonw_uint_field(json_wtr, "cookie", info->raw_tracepoint.cookie);
 		break;
 	case BPF_LINK_TYPE_TRACING:
 		err = get_prog_info(info->prog_id, &prog_info);
@@ -876,6 +877,8 @@ static int show_link_close_plain(int fd, struct bpf_link_info *info)
 	case BPF_LINK_TYPE_RAW_TRACEPOINT:
 		printf("\n\ttp '%s'  ",
 		       (const char *)u64_to_ptr(info->raw_tracepoint.tp_name));
+		if (info->raw_tracepoint.cookie)
+			printf("cookie %llu  ", info->raw_tracepoint.cookie);
 		break;
 	case BPF_LINK_TYPE_TRACING:
 		err = get_prog_info(info->prog_id, &prog_info);
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe
  2025-06-03 15:43 ` [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe Tao Chen
@ 2025-06-03 16:21   ` Quentin Monnet
  0 siblings, 0 replies; 5+ messages in thread
From: Quentin Monnet @ 2025-06-03 16:21 UTC (permalink / raw)
  To: Tao Chen, ast, daniel, andrii, martin.lau, eddyz87, song,
	yonghong.song, john.fastabend, kpsingh, sdf, jolsa
  Cc: bpf, linux-kernel

On 03/06/2025 16:43, Tao Chen wrote:
> Display cookie for raw_tp link probe, in plain mode:
> 
>  #bpftool link
> 
> 22: raw_tracepoint  prog 14
>         tp 'sys_enter'  cookie 23925373020405760
>         pids test_progs(176)
> 
> And in json mode:
> 
>  #bpftool link -j | jq
> 
> [
>   {
>     "id": 47,
>     "type": "raw_tracepoint",
>     "prog_id": 79,
>     "tp_name": "sys_enter",
>     "cookie": 23925373020405760,
>     "pids": [
>       {
>         "pid": 274,
>         "comm": "test_progs"
>       }
>     ]
>   }
> ]
> 
> Signed-off-by: Tao Chen <chen.dylane@linux.dev>

Acked-by: Quentin Monnet <qmo@kernel.org>

Thank you!

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info
  2025-06-03 15:43 [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info Tao Chen
  2025-06-03 15:43 ` [PATCH bpf-next v3 2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test Tao Chen
  2025-06-03 15:43 ` [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe Tao Chen
@ 2025-06-05 18:50 ` patchwork-bot+netdevbpf
  2 siblings, 0 replies; 5+ messages in thread
From: patchwork-bot+netdevbpf @ 2025-06-05 18:50 UTC (permalink / raw)
  To: Tao Chen
  Cc: ast, daniel, andrii, martin.lau, eddyz87, song, yonghong.song,
	john.fastabend, kpsingh, sdf, qmo, jolsa, bpf, linux-kernel

Hello:

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

On Tue,  3 Jun 2025 23:43:07 +0800 you wrote:
> After commit 68ca5d4eebb8 ("bpf: support BPF cookie in raw tracepoint
> (raw_tp, tp_btf) programs"), we can show the cookie in bpf_link_info
> like kprobe etc.
> 
> Acked-by: Jiri Olsa <jolsa@kernel.org>
> Signed-off-by: Tao Chen <chen.dylane@linux.dev>
> 
> [...]

Here is the summary with links:
  - [bpf-next,v3,1/3] bpf: Add cookie to raw_tp bpf_link_info
    https://git.kernel.org/bpf/bpf-next/c/2fe1c5934736
  - [bpf-next,v3,2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test
    https://git.kernel.org/bpf/bpf-next/c/25a0d04d3883
  - [bpf-next,v3,3/3] bpftool: Display cookie for raw_tp link probe
    https://git.kernel.org/bpf/bpf-next/c/9c8827d773bf

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-06-05 18:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-03 15:43 [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info Tao Chen
2025-06-03 15:43 ` [PATCH bpf-next v3 2/3] selftests/bpf: Add cookies check for raw_tp fill_link_info test Tao Chen
2025-06-03 15:43 ` [PATCH bpf-next v3 3/3] bpftool: Display cookie for raw_tp link probe Tao Chen
2025-06-03 16:21   ` Quentin Monnet
2025-06-05 18:50 ` [PATCH bpf-next v3 1/3] bpf: Add cookie to raw_tp bpf_link_info patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).