All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types
@ 2020-02-25 22:34 Andrey Ignatov
  2020-02-25 22:58 ` Song Liu
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Andrey Ignatov @ 2020-02-25 22:34 UTC (permalink / raw)
  To: bpf; +Cc: Andrey Ignatov, ast, daniel, kernel-team

Add support for prog types that were added to kernel but not present in
bpftool yet: struct_ops, tracing, ext prog types and corresponding
section names.

Before:
  # bpftool p l
  ...
  184: type 26  name test_subprog3  tag dda135a7dc0daf54  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 112B  jited 103B  memlock 4096B  map_ids 136
          btf_id 85
  185: type 28  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 72B  jited 69B  memlock 4096B  map_ids 136
          btf_id 85

After:
  # bpftool p l
  ...
  184: tracing  name test_subprog3  tag dda135a7dc0daf54  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 112B  jited 103B  memlock 4096B  map_ids 136
          btf_id 85
  185: ext  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
          loaded_at 2020-02-25T13:28:33-0800  uid 0
          xlated 72B  jited 69B  memlock 4096B  map_ids 136
          btf_id 85

Signed-off-by: Andrey Ignatov <rdna@fb.com>
---
 tools/bpf/bpftool/Documentation/bpftool-prog.rst | 3 ++-
 tools/bpf/bpftool/bash-completion/bpftool        | 3 ++-
 tools/bpf/bpftool/main.h                         | 3 +++
 tools/bpf/bpftool/prog.c                         | 4 ++--
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
index 64ddf8a4c518..46862e85fed2 100644
--- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst
+++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst
@@ -42,7 +42,8 @@ PROG COMMANDS
 |		**cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
 |		**cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
 |		**cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/sysctl** |
-|		**cgroup/getsockopt** | **cgroup/setsockopt**
+|		**cgroup/getsockopt** | **cgroup/setsockopt** |
+|		**struct_ops** | **fentry** | **fexit** | **freplace**
 |	}
 |       *ATTACH_TYPE* := {
 |		**msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector**
diff --git a/tools/bpf/bpftool/bash-completion/bpftool b/tools/bpf/bpftool/bash-completion/bpftool
index 754d8395e451..ad4133b1f0cf 100644
--- a/tools/bpf/bpftool/bash-completion/bpftool
+++ b/tools/bpf/bpftool/bash-completion/bpftool
@@ -469,7 +469,8 @@ _bpftool()
                                 cgroup/recvmsg4 cgroup/recvmsg6 \
                                 cgroup/post_bind4 cgroup/post_bind6 \
                                 cgroup/sysctl cgroup/getsockopt \
-                                cgroup/setsockopt" -- \
+                                cgroup/setsockopt struct_ops \
+                                fentry fexit freplace" -- \
                                                    "$cur" ) )
                             return 0
                             ;;
diff --git a/tools/bpf/bpftool/main.h b/tools/bpf/bpftool/main.h
index 4e75b58d3989..724ef9d941d3 100644
--- a/tools/bpf/bpftool/main.h
+++ b/tools/bpf/bpftool/main.h
@@ -76,6 +76,9 @@ static const char * const prog_type_name[] = {
 	[BPF_PROG_TYPE_CGROUP_SYSCTL]		= "cgroup_sysctl",
 	[BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE]	= "raw_tracepoint_writable",
 	[BPF_PROG_TYPE_CGROUP_SOCKOPT]		= "cgroup_sockopt",
+	[BPF_PROG_TYPE_TRACING]			= "tracing",
+	[BPF_PROG_TYPE_STRUCT_OPS]		= "struct_ops",
+	[BPF_PROG_TYPE_EXT]			= "ext",
 };
 
 extern const char * const map_type_name[];
diff --git a/tools/bpf/bpftool/prog.c b/tools/bpf/bpftool/prog.c
index b352ab041160..1996e67a2f00 100644
--- a/tools/bpf/bpftool/prog.c
+++ b/tools/bpf/bpftool/prog.c
@@ -1573,8 +1573,8 @@ static int do_help(int argc, char **argv)
 		"                 cgroup/bind4 | cgroup/bind6 | cgroup/post_bind4 |\n"
 		"                 cgroup/post_bind6 | cgroup/connect4 | cgroup/connect6 |\n"
 		"                 cgroup/sendmsg4 | cgroup/sendmsg6 | cgroup/recvmsg4 |\n"
-		"                 cgroup/recvmsg6 | cgroup/getsockopt |\n"
-		"                 cgroup/setsockopt }\n"
+		"                 cgroup/recvmsg6 | cgroup/getsockopt | cgroup/setsockopt |\n"
+		"                 struct_ops | fentry | fexit | freplace }\n"
 		"       ATTACH_TYPE := { msg_verdict | stream_verdict | stream_parser |\n"
 		"                        flow_dissector }\n"
 		"       " HELP_SPEC_OPTIONS "\n"
-- 
2.17.1


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

* Re: [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types
  2020-02-25 22:34 [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types Andrey Ignatov
@ 2020-02-25 22:58 ` Song Liu
  2020-02-26 11:41 ` Quentin Monnet
  2020-02-26 15:42 ` Daniel Borkmann
  2 siblings, 0 replies; 4+ messages in thread
From: Song Liu @ 2020-02-25 22:58 UTC (permalink / raw)
  To: Andrey Ignatov; +Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Kernel Team

On Tue, Feb 25, 2020 at 2:35 PM Andrey Ignatov <rdna@fb.com> wrote:
>
> Add support for prog types that were added to kernel but not present in
> bpftool yet: struct_ops, tracing, ext prog types and corresponding
> section names.
>
> Before:
>   # bpftool p l
>   ...
>   184: type 26  name test_subprog3  tag dda135a7dc0daf54  gpl
>           loaded_at 2020-02-25T13:28:33-0800  uid 0
>           xlated 112B  jited 103B  memlock 4096B  map_ids 136
>           btf_id 85
>   185: type 28  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>           loaded_at 2020-02-25T13:28:33-0800  uid 0
>           xlated 72B  jited 69B  memlock 4096B  map_ids 136
>           btf_id 85
>
> After:
>   # bpftool p l
>   ...
>   184: tracing  name test_subprog3  tag dda135a7dc0daf54  gpl
>           loaded_at 2020-02-25T13:28:33-0800  uid 0
>           xlated 112B  jited 103B  memlock 4096B  map_ids 136
>           btf_id 85
>   185: ext  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>           loaded_at 2020-02-25T13:28:33-0800  uid 0
>           xlated 72B  jited 69B  memlock 4096B  map_ids 136
>           btf_id 85
>
> Signed-off-by: Andrey Ignatov <rdna@fb.com>

Acked-by: Song Liu <songliubraving@fb.com>

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

* Re: [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types
  2020-02-25 22:34 [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types Andrey Ignatov
  2020-02-25 22:58 ` Song Liu
@ 2020-02-26 11:41 ` Quentin Monnet
  2020-02-26 15:42 ` Daniel Borkmann
  2 siblings, 0 replies; 4+ messages in thread
From: Quentin Monnet @ 2020-02-26 11:41 UTC (permalink / raw)
  To: Andrey Ignatov, bpf; +Cc: ast, daniel, kernel-team

2020-02-25 14:34 UTC-0800 ~ Andrey Ignatov <rdna@fb.com>
> Add support for prog types that were added to kernel but not present in
> bpftool yet: struct_ops, tracing, ext prog types and corresponding
> section names.
> 
> Before:
>    # bpftool p l
>    ...
>    184: type 26  name test_subprog3  tag dda135a7dc0daf54  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 112B  jited 103B  memlock 4096B  map_ids 136
>            btf_id 85
>    185: type 28  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 72B  jited 69B  memlock 4096B  map_ids 136
>            btf_id 85
> 
> After:
>    # bpftool p l
>    ...
>    184: tracing  name test_subprog3  tag dda135a7dc0daf54  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 112B  jited 103B  memlock 4096B  map_ids 136
>            btf_id 85
>    185: ext  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 72B  jited 69B  memlock 4096B  map_ids 136
>            btf_id 85
> 
> Signed-off-by: Andrey Ignatov <rdna@fb.com>

Reviewed-by: Quentin Monnet <quentin@isovalent.com>

Thanks!

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

* Re: [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types
  2020-02-25 22:34 [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types Andrey Ignatov
  2020-02-25 22:58 ` Song Liu
  2020-02-26 11:41 ` Quentin Monnet
@ 2020-02-26 15:42 ` Daniel Borkmann
  2 siblings, 0 replies; 4+ messages in thread
From: Daniel Borkmann @ 2020-02-26 15:42 UTC (permalink / raw)
  To: Andrey Ignatov, bpf; +Cc: ast, kernel-team

On 2/25/20 11:34 PM, Andrey Ignatov wrote:
> Add support for prog types that were added to kernel but not present in
> bpftool yet: struct_ops, tracing, ext prog types and corresponding
> section names.
> 
> Before:
>    # bpftool p l
>    ...
>    184: type 26  name test_subprog3  tag dda135a7dc0daf54  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 112B  jited 103B  memlock 4096B  map_ids 136
>            btf_id 85
>    185: type 28  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 72B  jited 69B  memlock 4096B  map_ids 136
>            btf_id 85
> 
> After:
>    # bpftool p l
>    ...
>    184: tracing  name test_subprog3  tag dda135a7dc0daf54  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 112B  jited 103B  memlock 4096B  map_ids 136
>            btf_id 85
>    185: ext  name new_get_skb_len  tag d2de5b87d8e5dc49  gpl
>            loaded_at 2020-02-25T13:28:33-0800  uid 0
>            xlated 72B  jited 69B  memlock 4096B  map_ids 136
>            btf_id 85
> 
> Signed-off-by: Andrey Ignatov <rdna@fb.com>

Applied, thanks!

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

end of thread, other threads:[~2020-02-26 15:42 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-25 22:34 [PATCH bpf-next] bpftool: Support struct_ops, tracing, ext prog types Andrey Ignatov
2020-02-25 22:58 ` Song Liu
2020-02-26 11:41 ` Quentin Monnet
2020-02-26 15:42 ` Daniel Borkmann

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.