Message ID | 20200617161832.1438371-10-andriin@fb.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | libbpf ksym support and bpftool show PIDs | expand |
2020-06-17 09:18 UTC-0700 ~ Andrii Nakryiko <andriin@fb.com> > Add statements about bpftool being able to discover process info, holding > reference to BPF map, prog, link, or BTF. Show example output as well. > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> > --- > tools/bpf/bpftool/Documentation/bpftool-btf.rst | 5 +++++ > tools/bpf/bpftool/Documentation/bpftool-link.rst | 13 ++++++++++++- > tools/bpf/bpftool/Documentation/bpftool-map.rst | 8 +++++++- > tools/bpf/bpftool/Documentation/bpftool-prog.rst | 11 +++++++++++ > 4 files changed, 35 insertions(+), 2 deletions(-) > > diff --git a/tools/bpf/bpftool/Documentation/bpftool-btf.rst b/tools/bpf/bpftool/Documentation/bpftool-btf.rst > index ce3a724f50c1..85f7c82ebb28 100644 > --- a/tools/bpf/bpftool/Documentation/bpftool-btf.rst > +++ b/tools/bpf/bpftool/Documentation/bpftool-btf.rst > @@ -36,6 +36,11 @@ DESCRIPTION > otherwise list all BTF objects currently loaded on the > system. > > + Since Linux 5.8 bpftool is able to discover information about > + processes that hold open file descriptors (FDs) against BPF > + links. On such kernels bpftool will automatically emit this Copy-paste error: s/BPF links/BTF objects/ > + information as well. > + > **bpftool btf dump** *BTF_SRC* > Dump BTF entries from a given *BTF_SRC*. > > diff --git a/tools/bpf/bpftool/Documentation/bpftool-link.rst b/tools/bpf/bpftool/Documentation/bpftool-link.rst > index 0e43d7b06c11..1da7ef65b514 100644 > --- a/tools/bpf/bpftool/Documentation/bpftool-link.rst > +++ b/tools/bpf/bpftool/Documentation/bpftool-link.rst > @@ -37,6 +37,11 @@ DESCRIPTION > zero or more named attributes, some of which depend on type > of link. > > + Since Linux 5.8 bpftool is able to discover information about > + processes that hold open file descriptors (FDs) against BPF > + links. On such kernels bpftool will automatically emit this > + information as well. > + > **bpftool link pin** *LINK* *FILE* > Pin link *LINK* as *FILE*. > > @@ -82,6 +87,7 @@ EXAMPLES > > 10: cgroup prog 25 > cgroup_id 614 attach_type egress > + pids test_progs(2238417) (That's a big PID. Maybe something below the default max pid (32768) might be less confusing for users, but also maybe that's just me nitpicking too much.) > > **# bpftool --json --pretty link show** > > @@ -91,7 +97,12 @@ EXAMPLES > "type": "cgroup", > "prog_id": 25, > "cgroup_id": 614, > - "attach_type": "egress" > + "attach_type": "egress", > + "pids": [{ > + "pid": 2238417, > + "comm": "test_progs" > + } > + ] > } > ] >
On Wed, Jun 17, 2020 at 5:25 PM Quentin Monnet <quentin@isovalent.com> wrote: > > 2020-06-17 09:18 UTC-0700 ~ Andrii Nakryiko <andriin@fb.com> > > Add statements about bpftool being able to discover process info, holding > > reference to BPF map, prog, link, or BTF. Show example output as well. > > > > Signed-off-by: Andrii Nakryiko <andriin@fb.com> > > --- > > tools/bpf/bpftool/Documentation/bpftool-btf.rst | 5 +++++ > > tools/bpf/bpftool/Documentation/bpftool-link.rst | 13 ++++++++++++- > > tools/bpf/bpftool/Documentation/bpftool-map.rst | 8 +++++++- > > tools/bpf/bpftool/Documentation/bpftool-prog.rst | 11 +++++++++++ > > 4 files changed, 35 insertions(+), 2 deletions(-) > > > > diff --git a/tools/bpf/bpftool/Documentation/bpftool-btf.rst b/tools/bpf/bpftool/Documentation/bpftool-btf.rst > > index ce3a724f50c1..85f7c82ebb28 100644 > > --- a/tools/bpf/bpftool/Documentation/bpftool-btf.rst > > +++ b/tools/bpf/bpftool/Documentation/bpftool-btf.rst > > @@ -36,6 +36,11 @@ DESCRIPTION > > otherwise list all BTF objects currently loaded on the > > system. > > > > + Since Linux 5.8 bpftool is able to discover information about > > + processes that hold open file descriptors (FDs) against BPF > > + links. On such kernels bpftool will automatically emit this > > Copy-paste error: s/BPF links/BTF objects/ > oops, will fix > > + information as well. > > + > > **bpftool btf dump** *BTF_SRC* > > Dump BTF entries from a given *BTF_SRC*. > > > > diff --git a/tools/bpf/bpftool/Documentation/bpftool-link.rst b/tools/bpf/bpftool/Documentation/bpftool-link.rst > > index 0e43d7b06c11..1da7ef65b514 100644 > > --- a/tools/bpf/bpftool/Documentation/bpftool-link.rst > > +++ b/tools/bpf/bpftool/Documentation/bpftool-link.rst > > @@ -37,6 +37,11 @@ DESCRIPTION > > zero or more named attributes, some of which depend on type > > of link. > > > > + Since Linux 5.8 bpftool is able to discover information about > > + processes that hold open file descriptors (FDs) against BPF > > + links. On such kernels bpftool will automatically emit this > > + information as well. > > + > > **bpftool link pin** *LINK* *FILE* > > Pin link *LINK* as *FILE*. > > > > @@ -82,6 +87,7 @@ EXAMPLES > > > > 10: cgroup prog 25 > > cgroup_id 614 attach_type egress > > + pids test_progs(2238417) > > (That's a big PID. Maybe something below the default max pid (32768) > might be less confusing for users, but also maybe that's just me > nitpicking too much.) heh, real system, but yeah, I can make up a smaller PID :) > > > > > **# bpftool --json --pretty link show** > > > > @@ -91,7 +97,12 @@ EXAMPLES > > "type": "cgroup", > > "prog_id": 25, > > "cgroup_id": 614, > > - "attach_type": "egress" > > + "attach_type": "egress", > > + "pids": [{ > > + "pid": 2238417, > > + "comm": "test_progs" > > + } > > + ] > > } > > ] > >
diff --git a/tools/bpf/bpftool/Documentation/bpftool-btf.rst b/tools/bpf/bpftool/Documentation/bpftool-btf.rst index ce3a724f50c1..85f7c82ebb28 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-btf.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-btf.rst @@ -36,6 +36,11 @@ DESCRIPTION otherwise list all BTF objects currently loaded on the system. + Since Linux 5.8 bpftool is able to discover information about + processes that hold open file descriptors (FDs) against BPF + links. On such kernels bpftool will automatically emit this + information as well. + **bpftool btf dump** *BTF_SRC* Dump BTF entries from a given *BTF_SRC*. diff --git a/tools/bpf/bpftool/Documentation/bpftool-link.rst b/tools/bpf/bpftool/Documentation/bpftool-link.rst index 0e43d7b06c11..1da7ef65b514 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-link.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-link.rst @@ -37,6 +37,11 @@ DESCRIPTION zero or more named attributes, some of which depend on type of link. + Since Linux 5.8 bpftool is able to discover information about + processes that hold open file descriptors (FDs) against BPF + links. On such kernels bpftool will automatically emit this + information as well. + **bpftool link pin** *LINK* *FILE* Pin link *LINK* as *FILE*. @@ -82,6 +87,7 @@ EXAMPLES 10: cgroup prog 25 cgroup_id 614 attach_type egress + pids test_progs(2238417) **# bpftool --json --pretty link show** @@ -91,7 +97,12 @@ EXAMPLES "type": "cgroup", "prog_id": 25, "cgroup_id": 614, - "attach_type": "egress" + "attach_type": "egress", + "pids": [{ + "pid": 2238417, + "comm": "test_progs" + } + ] } ] diff --git a/tools/bpf/bpftool/Documentation/bpftool-map.rst b/tools/bpf/bpftool/Documentation/bpftool-map.rst index 31101643e57c..5bc2123e9944 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-map.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-map.rst @@ -62,6 +62,11 @@ DESCRIPTION Output will start with map ID followed by map type and zero or more named attributes (depending on kernel version). + Since Linux 5.8 bpftool is able to discover information about + processes that hold open file descriptors (FDs) against BPF + maps. On such kernels bpftool will automatically emit this + information as well. + **bpftool map create** *FILE* **type** *TYPE* **key** *KEY_SIZE* **value** *VALUE_SIZE* **entries** *MAX_ENTRIES* **name** *NAME* [**flags** *FLAGS*] [**dev** *NAME*] Create a new map with given parameters and pin it to *bpffs* as *FILE*. @@ -180,7 +185,8 @@ EXAMPLES :: 10: hash name some_map flags 0x0 - key 4B value 8B max_entries 2048 memlock 167936B + key 4B value 8B max_entries 2048 memlock 167936B + pids systemd(1) The following three commands are equivalent: diff --git a/tools/bpf/bpftool/Documentation/bpftool-prog.rst b/tools/bpf/bpftool/Documentation/bpftool-prog.rst index 2b254959d488..412ea3d9bf7f 100644 --- a/tools/bpf/bpftool/Documentation/bpftool-prog.rst +++ b/tools/bpf/bpftool/Documentation/bpftool-prog.rst @@ -75,6 +75,11 @@ DESCRIPTION program run. Activation or deactivation of the feature is performed via the **kernel.bpf_stats_enabled** sysctl knob. + Since Linux 5.8 bpftool is able to discover information about + processes that hold open file descriptors (FDs) against BPF + programs. On such kernels bpftool will automatically emit this + information as well. + **bpftool prog dump xlated** *PROG* [{ **file** *FILE* | **opcodes** | **visual** | **linum** }] Dump eBPF instructions of the programs from the kernel. By default, eBPF will be disassembled and printed to standard @@ -243,6 +248,7 @@ EXAMPLES 10: xdp name some_prog tag 005a3d2123620c8b gpl run_time_ns 81632 run_cnt 10 loaded_at 2017-09-29T20:11:00+0000 uid 0 xlated 528B jited 370B memlock 4096B map_ids 10 + pids systemd(1) **# bpftool --json --pretty prog show** @@ -262,6 +268,11 @@ EXAMPLES "bytes_jited": 370, "bytes_memlock": 4096, "map_ids": [10 + ], + "pids": [{ + "pid": 1, + "comm": "systemd" + } ] } ]
Add statements about bpftool being able to discover process info, holding reference to BPF map, prog, link, or BTF. Show example output as well. Signed-off-by: Andrii Nakryiko <andriin@fb.com> --- tools/bpf/bpftool/Documentation/bpftool-btf.rst | 5 +++++ tools/bpf/bpftool/Documentation/bpftool-link.rst | 13 ++++++++++++- tools/bpf/bpftool/Documentation/bpftool-map.rst | 8 +++++++- tools/bpf/bpftool/Documentation/bpftool-prog.rst | 11 +++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-)