tools/bpftool: Add documentation and sample output for process info
authorAndrii Nakryiko <andriin@fb.com>
Fri, 19 Jun 2020 23:17:03 +0000 (16:17 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 23 Jun 2020 00:01:49 +0000 (17:01 -0700)
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>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Reviewed-by: Quentin Monnet <quentin@isovalent.com>
Link: https://lore.kernel.org/bpf/20200619231703.738941-10-andriin@fb.com
tools/bpf/bpftool/Documentation/bpftool-btf.rst
tools/bpf/bpftool/Documentation/bpftool-link.rst
tools/bpf/bpftool/Documentation/bpftool-map.rst
tools/bpf/bpftool/Documentation/bpftool-prog.rst

index ce3a724..896f4c6 100644 (file)
@@ -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 BTF
+                 objects. On such kernels bpftool will automatically emit this
+                 information as well.
+
        **bpftool btf dump** *BTF_SRC*
                  Dump BTF entries from a given *BTF_SRC*.
 
index 0e43d7b..38b0949 100644 (file)
@@ -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(223)
 
 **# 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": 223,
+                    "comm": "test_progs"
+                }
+            ]
         }
     ]
 
index 3110164..5bc2123 100644 (file)
@@ -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:
 
index 2b25495..412ea3d 100644 (file)
@@ -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"
+                }
             ]
         }
     ]