mbox series

[v4,bpf-next,0/4] bpftool: Add struct_ops support

Message ID 20200318171631.128566-1-kafai@fb.com
Headers show
Series bpftool: Add struct_ops support | expand

Message

Martin KaFai Lau March 18, 2020, 5:16 p.m. UTC
This set adds "struct_ops" support to bpftool.

The first two patches improve the btf_dumper in bpftool.
Patch 1: print the enum's name (if it is found) instead of the
         enum's value.
Patch 2: print a char[] as a string if all characters are printable.

"struct_ops" stores the prog_id in a func ptr.
Instead of printing a prog_id,
patch 3 adds an option to btf_dumper to allow a func ptr's value
to be printed with the full func_proto info and the prog_name.

Patch 4 implements the "struct_ops" bpftool command.

v4:
- Return -EINVAL in patch 1 (Andrii)

v3:
- Check for "case 1:" in patch 1 (Andrii)

v2:
- Typo fixes in comment and doc in patch 4 (Quentin)
- Link to a few other man pages in doc in patch 4 (Quentin)
- Alphabet ordering in include files in patch 4 (Quentin)
- Use GET_ARG() in patch 4 (Quentin)

Martin KaFai Lau (4):
  bpftool: Print the enum's name instead of value
  bpftool: Print as a string for char array
  bpftool: Translate prog_id to its bpf prog_name
  bpftool: Add struct_ops support

 .../Documentation/bpftool-struct_ops.rst      | 116 ++++
 tools/bpf/bpftool/bash-completion/bpftool     |  28 +
 tools/bpf/bpftool/btf_dumper.c                | 199 +++++-
 tools/bpf/bpftool/main.c                      |   3 +-
 tools/bpf/bpftool/main.h                      |   2 +
 tools/bpf/bpftool/struct_ops.c                | 596 ++++++++++++++++++
 6 files changed, 927 insertions(+), 17 deletions(-)
 create mode 100644 tools/bpf/bpftool/Documentation/bpftool-struct_ops.rst
 create mode 100644 tools/bpf/bpftool/struct_ops.c

Comments

Daniel Borkmann March 20, 2020, 3 p.m. UTC | #1
On 3/18/20 6:16 PM, Martin KaFai Lau wrote:
> This set adds "struct_ops" support to bpftool.
> 
> The first two patches improve the btf_dumper in bpftool.
> Patch 1: print the enum's name (if it is found) instead of the
>           enum's value.
> Patch 2: print a char[] as a string if all characters are printable.
> 
> "struct_ops" stores the prog_id in a func ptr.
> Instead of printing a prog_id,
> patch 3 adds an option to btf_dumper to allow a func ptr's value
> to be printed with the full func_proto info and the prog_name.
> 
> Patch 4 implements the "struct_ops" bpftool command.
> 
> v4:
> - Return -EINVAL in patch 1 (Andrii)
> 
> v3:
> - Check for "case 1:" in patch 1 (Andrii)
> 
> v2:
> - Typo fixes in comment and doc in patch 4 (Quentin)
> - Link to a few other man pages in doc in patch 4 (Quentin)
> - Alphabet ordering in include files in patch 4 (Quentin)
> - Use GET_ARG() in patch 4 (Quentin)
> 
> Martin KaFai Lau (4):
>    bpftool: Print the enum's name instead of value
>    bpftool: Print as a string for char array
>    bpftool: Translate prog_id to its bpf prog_name
>    bpftool: Add struct_ops support
> 
>   .../Documentation/bpftool-struct_ops.rst      | 116 ++++
>   tools/bpf/bpftool/bash-completion/bpftool     |  28 +
>   tools/bpf/bpftool/btf_dumper.c                | 199 +++++-
>   tools/bpf/bpftool/main.c                      |   3 +-
>   tools/bpf/bpftool/main.h                      |   2 +
>   tools/bpf/bpftool/struct_ops.c                | 596 ++++++++++++++++++
>   6 files changed, 927 insertions(+), 17 deletions(-)
>   create mode 100644 tools/bpf/bpftool/Documentation/bpftool-struct_ops.rst
>   create mode 100644 tools/bpf/bpftool/struct_ops.c
> 

Applied, thanks!