~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/bpf/bpftool/Documentation/bpftool-prog.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/bpf/bpftool/Documentation/bpftool-prog.rst (Version linux-6.12-rc7) and /tools/bpf/bpftool/Documentation/bpftool-prog.rst (Version linux-5.4.285)


  1 .. SPDX-License-Identifier: (GPL-2.0-only OR B << 
  2                                                << 
  3 ================                                    1 ================
  4 bpftool-prog                                        2 bpftool-prog
  5 ================                                    3 ================
  6 ----------------------------------------------      4 -------------------------------------------------------------------------------
  7 tool for inspection and simple manipulation of      5 tool for inspection and simple manipulation of eBPF progs
  8 ----------------------------------------------      6 -------------------------------------------------------------------------------
  9                                                     7 
 10 :Manual section: 8                                  8 :Manual section: 8
 11                                                     9 
 12 .. include:: substitutions.rst                 << 
 13                                                << 
 14 SYNOPSIS                                           10 SYNOPSIS
 15 ========                                           11 ========
 16                                                    12 
 17 **bpftool** [*OPTIONS*] **prog** *COMMAND*     !!  13         **bpftool** [*OPTIONS*] **prog** *COMMAND*
 18                                                    14 
 19 *OPTIONS* := { |COMMON_OPTIONS| |              !!  15         *OPTIONS* := { { **-j** | **--json** } [{ **-p** | **--pretty** }] | { **-f** | **--bpffs** } }
 20 { **-f** | **--bpffs** } | { **-m** | **--mapc !!  16 
 21 { **-L** | **--use-loader** } }                !!  17         *COMMANDS* :=
 22                                                !!  18         { **show** | **list** | **dump xlated** | **dump jited** | **pin** | **load**
 23 *COMMANDS* :=                                  !!  19         | **loadall** | **help** }
 24 { **show** | **list** | **dump xlated** | **du << 
 25 **loadall** | **help** }                       << 
 26                                                    20 
 27 PROG COMMANDS                                      21 PROG COMMANDS
 28 =============                                      22 =============
 29                                                    23 
 30 | **bpftool** **prog** { **show** | **list** } !!  24 |       **bpftool** **prog { show | list }** [*PROG*]
 31 | **bpftool** **prog dump xlated** *PROG* [{ * !!  25 |       **bpftool** **prog dump xlated** *PROG* [{**file** *FILE* | **opcodes** | **visual** | **linum**}]
 32 | **bpftool** **prog dump jited**  *PROG* [{ * !!  26 |       **bpftool** **prog dump jited**  *PROG* [{**file** *FILE* | **opcodes** | **linum**}]
 33 | **bpftool** **prog pin** *PROG* *FILE*       !!  27 |       **bpftool** **prog pin** *PROG* *FILE*
 34 | **bpftool** **prog** { **load** | **loadall* !!  28 |       **bpftool** **prog { load | loadall }** *OBJ* *PATH* [**type** *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] [**dev** *NAME*] [**pinmaps** *MAP_DIR*]
 35 | **bpftool** **prog attach** *PROG* *ATTACH_T !!  29 |       **bpftool** **prog attach** *PROG* *ATTACH_TYPE* [*MAP*]
 36 | **bpftool** **prog detach** *PROG* *ATTACH_T !!  30 |       **bpftool** **prog detach** *PROG* *ATTACH_TYPE* [*MAP*]
 37 | **bpftool** **prog tracelog**                !!  31 |       **bpftool** **prog tracelog**
 38 | **bpftool** **prog run** *PROG* **data_in**  !!  32 |       **bpftool** **prog run** *PROG* **data_in** *FILE* [**data_out** *FILE* [**data_size_out** *L*]] [**ctx_in** *FILE* [**ctx_out** *FILE* [**ctx_size_out** *M*]]] [**repeat** *N*]
 39 | **bpftool** **prog profile** *PROG* [**durat !!  33 |       **bpftool** **prog help**
 40 | **bpftool** **prog help**                    << 
 41 |                                                  34 |
 42 | *MAP* := { **id** *MAP_ID* | **pinned** *FIL !!  35 |       *MAP* := { **id** *MAP_ID* | **pinned** *FILE* }
 43 | *PROG* := { **id** *PROG_ID* | **pinned** *F !!  36 |       *PROG* := { **id** *PROG_ID* | **pinned** *FILE* | **tag** *PROG_TAG* }
 44 | *TYPE* := {                                  !!  37 |       *TYPE* := {
 45 |     **socket** | **kprobe** | **kretprobe**  !!  38 |               **socket** | **kprobe** | **kretprobe** | **classifier** | **action** |
 46 |     **tracepoint** | **raw_tracepoint** | ** !!  39 |               **tracepoint** | **raw_tracepoint** | **xdp** | **perf_event** | **cgroup/skb** |
 47 |     **cgroup/sock** | **cgroup/dev** | **lwt !!  40 |               **cgroup/sock** | **cgroup/dev** | **lwt_in** | **lwt_out** | **lwt_xmit** |
 48 |     **lwt_seg6local** | **sockops** | **sk_s !!  41 |               **lwt_seg6local** | **sockops** | **sk_skb** | **sk_msg** | **lirc_mode2** |
 49 |     **cgroup/bind4** | **cgroup/bind6** | ** !!  42 |               **cgroup/bind4** | **cgroup/bind6** | **cgroup/post_bind4** | **cgroup/post_bind6** |
 50 |     **cgroup/connect4** | **cgroup/connect6* !!  43 |               **cgroup/connect4** | **cgroup/connect6** | **cgroup/sendmsg4** | **cgroup/sendmsg6** |
 51 |     **cgroup/getpeername4** | **cgroup/getpe !!  44 |               **cgroup/recvmsg4** | **cgroup/recvmsg6** | **cgroup/sysctl** |
 52 |     **cgroup/getsockname4** | **cgroup/getso !!  45 |               **cgroup/getsockopt** | **cgroup/setsockopt**
 53 |     **cgroup/sendmsg4** | **cgroup/sendmsg6* !!  46 |       }
 54 |     **cgroup/recvmsg4** | **cgroup/recvmsg6* !!  47 |       *ATTACH_TYPE* := {
 55 |     **cgroup/getsockopt** | **cgroup/setsock !!  48 |               **msg_verdict** | **stream_verdict** | **stream_parser** | **flow_dissector**
 56 |     **struct_ops** | **fentry** | **fexit**  !!  49 |       }
 57 | }                                            << 
 58 | *ATTACH_TYPE* := {                           << 
 59 |     **sk_msg_verdict** | **sk_skb_verdict**  << 
 60 |     **sk_skb_stream_parser** | **flow_dissec << 
 61 | }                                            << 
 62 | *METRICs* := {                               << 
 63 |     **cycles** | **instructions** | **l1d_lo << 
 64 |     **itlb_misses** | **dtlb_misses**        << 
 65 | }                                            << 
 66                                                    50 
 67                                                    51 
 68 DESCRIPTION                                        52 DESCRIPTION
 69 ===========                                        53 ===========
 70 bpftool prog { show | list } [*PROG*]          !!  54         **bpftool prog { show | list }** [*PROG*]
 71     Show information about loaded programs.  I !!  55                   Show information about loaded programs.  If *PROG* is
 72     information only about given programs, oth !!  56                   specified show information only about given program, otherwise
 73     currently loaded on the system. In case of !!  57                   list all programs currently loaded on the system.
 74     match several programs which will all be s !!  58 
 75                                                !!  59                   Output will start with program ID followed by program type and
 76     Output will start with program ID followed !!  60                   zero or more named attributes (depending on kernel version).
 77     named attributes (depending on kernel vers !!  61 
 78                                                !!  62                   Since Linux 5.1 the kernel can collect statistics on BPF
 79     Since Linux 5.1 the kernel can collect sta !!  63                   programs (such as the total time spent running the program,
 80     the total time spent running the program,  !!  64                   and the number of times it was run). If available, bpftool
 81     run). If available, bpftool shows such sta !!  65                   shows such statistics. However, the kernel does not collect
 82     not collect them by defaults, as it slight !!  66                   them by defaults, as it slightly impacts performance on each
 83     program run. Activation or deactivation of !!  67                   program run. Activation or deactivation of the feature is
 84     **kernel.bpf_stats_enabled** sysctl knob.  !!  68                   performed via the **kernel.bpf_stats_enabled** sysctl knob.
 85                                                !!  69 
 86     Since Linux 5.8 bpftool is able to discove !!  70         **bpftool prog dump xlated** *PROG* [{ **file** *FILE* | **opcodes** | **visual** | **linum** }]
 87     that hold open file descriptors (FDs) agai !!  71                   Dump eBPF instructions of the program from the kernel. By
 88     bpftool will automatically emit this infor !!  72                   default, eBPF will be disassembled and printed to standard
 89                                                !!  73                   output in human-readable format. In this case, **opcodes**
 90 bpftool prog dump xlated *PROG* [{ file *FILE* !!  74                   controls if raw opcodes should be printed as well.
 91     Dump eBPF instructions of the programs fro !!  75 
 92     will be disassembled and printed to standa !!  76                   If **file** is specified, the binary image will instead be
 93     format. In this case, **opcodes** controls !!  77                   written to *FILE*.
 94     as well.                                   !!  78 
 95                                                !!  79                   If **visual** is specified, control flow graph (CFG) will be
 96     In case of **tag** or **name**, *PROG* may !!  80                   built instead, and eBPF instructions will be presented with
 97     will all be dumped.  However, if **file**  !!  81                   CFG in DOT format, on standard output.
 98     *PROG* must match a single program.        !!  82 
 99                                                !!  83                   If the prog has line_info available, the source line will
100     If **file** is specified, the binary image !!  84                   be displayed by default.  If **linum** is specified,
101     *FILE*.                                    !!  85                   the filename, line number and line column will also be
102                                                !!  86                   displayed on top of the source line.
103     If **visual** is specified, control flow g !!  87 
104     and eBPF instructions will be presented wi !!  88         **bpftool prog dump jited**  *PROG* [{ **file** *FILE* | **opcodes** | **linum** }]
105     output.                                    !!  89                   Dump jited image (host machine code) of the program.
106                                                !!  90                   If *FILE* is specified image will be written to a file,
107     If the programs have line_info available,  !!  91                   otherwise it will be disassembled and printed to stdout.
108     displayed.  If **linum** is specified, the !!  92 
109     column will also be displayed.             !!  93                   **opcodes** controls if raw opcodes will be printed.
110                                                !!  94 
111 bpftool prog dump jited  *PROG* [{ file *FILE* !!  95                   If the prog has line_info available, the source line will
112     Dump jited image (host machine code) of th !!  96                   be displayed by default.  If **linum** is specified,
113                                                !!  97                   the filename, line number and line column will also be
114     If *FILE* is specified image will be writt !!  98                   displayed on top of the source line.
115     be disassembled and printed to stdout. *PR !!  99 
116     when **file** is specified.                !! 100         **bpftool prog pin** *PROG* *FILE*
117                                                !! 101                   Pin program *PROG* as *FILE*.
118     **opcodes** controls if raw opcodes will b !! 102 
119                                                !! 103                   Note: *FILE* must be located in *bpffs* mount. It must not
120     If the prog has line_info available, the s !! 104                   contain a dot character ('.'), which is reserved for future
121     **linum** is specified, the filename, line !! 105                   extensions of *bpffs*.
122     be displayed.                              !! 106 
123                                                !! 107         **bpftool prog { load | loadall }** *OBJ* *PATH* [**type** *TYPE*] [**map** {**idx** *IDX* | **name** *NAME*} *MAP*] [**dev** *NAME*] [**pinmaps** *MAP_DIR*]
124 bpftool prog pin *PROG* *FILE*                 !! 108                   Load bpf program(s) from binary *OBJ* and pin as *PATH*.
125     Pin program *PROG* as *FILE*.              !! 109                   **bpftool prog load** pins only the first program from the
126                                                !! 110                   *OBJ* as *PATH*. **bpftool prog loadall** pins all programs
127     Note: *FILE* must be located in *bpffs* mo !! 111                   from the *OBJ* under *PATH* directory.
128     character ('.'), which is reserved for fut !! 112                   **type** is optional, if not specified program type will be
129                                                !! 113                   inferred from section names.
130 bpftool prog { load | loadall } *OBJ* *PATH* [ !! 114                   By default bpftool will create new maps as declared in the ELF
131     Load bpf program(s) from binary *OBJ* and  !! 115                   object being loaded.  **map** parameter allows for the reuse
132     load** pins only the first program from th !! 116                   of existing maps.  It can be specified multiple times, each
133     loadall** pins all programs from the *OBJ* !! 117                   time for a different map.  *IDX* refers to index of the map
134     is optional, if not specified program type !! 118                   to be replaced in the ELF file counting from 0, while *NAME*
135     names. By default bpftool will create new  !! 119                   allows to replace a map by name.  *MAP* specifies the map to
136     object being loaded.  **map** parameter al !! 120                   use, referring to it by **id** or through a **pinned** file.
137     maps. It can be specified multiple times,  !! 121                   If **dev** *NAME* is specified program will be loaded onto
138     *IDX* refers to index of the map to be rep !! 122                   given networking device (offload).
139     from 0, while *NAME* allows to replace a m !! 123                   Optional **pinmaps** argument can be provided to pin all
140     map to use, referring to it by **id** or t !! 124                   maps under *MAP_DIR* directory.
141     **offload_dev** *NAME* is specified progra !! 125 
142     networking device (offload). If **xdpmeta_ !! 126                   Note: *PATH* must be located in *bpffs* mount. It must not
143     will become device-bound without offloadin !! 127                   contain a dot character ('.'), which is reserved for future
144     metadata. Optional **pinmaps** argument ca !! 128                   extensions of *bpffs*.
145     under *MAP_DIR* directory.                 !! 129 
146                                                !! 130         **bpftool prog attach** *PROG* *ATTACH_TYPE* [*MAP*]
147     If **autoattach** is specified program wil !! 131                   Attach bpf program *PROG* (with type specified by
148     case, only the link (representing the prog !! 132                   *ATTACH_TYPE*). Most *ATTACH_TYPEs* require a *MAP*
149     pinned, not the program as such, so the pa !! 133                   parameter, with the exception of *flow_dissector* which is
150     show -f**, only show in **bpftool link sho !! 134                   attached to current networking name space.
151     when bpftool (libbpf) is able to infer all !! 135 
152     object file, in particular, it's not suppo !! 136         **bpftool prog detach** *PROG* *ATTACH_TYPE* [*MAP*]
153     program does not support autoattach, bpfto !! 137                   Detach bpf program *PROG* (with type specified by
154     for that program instead.                  !! 138                   *ATTACH_TYPE*). Most *ATTACH_TYPEs* require a *MAP*
155                                                !! 139                   parameter, with the exception of *flow_dissector* which is
156     Note: *PATH* must be located in *bpffs* mo !! 140                   detached from the current networking name space.
157     character ('.'), which is reserved for fut !! 141 
158                                                !! 142         **bpftool prog tracelog**
159 bpftool prog attach *PROG* *ATTACH_TYPE* [*MAP !! 143                   Dump the trace pipe of the system to the console (stdout).
160     Attach bpf program *PROG* (with type speci !! 144                   Hit <Ctrl+C> to stop printing. BPF programs can write to this
161     *ATTACH_TYPEs* require a *MAP* parameter,  !! 145                   trace pipe at runtime with the **bpf_trace_printk()** helper.
162     *flow_dissector* which is attached to curr !! 146                   This should be used only for debugging purposes. For
163                                                !! 147                   streaming data from BPF programs to user space, one can use
164 bpftool prog detach *PROG* *ATTACH_TYPE* [*MAP !! 148                   perf events (see also **bpftool-map**\ (8)).
165     Detach bpf program *PROG* (with type speci !! 149 
166     *ATTACH_TYPEs* require a *MAP* parameter,  !! 150         **bpftool prog run** *PROG* **data_in** *FILE* [**data_out** *FILE* [**data_size_out** *L*]] [**ctx_in** *FILE* [**ctx_out** *FILE* [**ctx_size_out** *M*]]] [**repeat** *N*]
167     *flow_dissector* which is detached from th !! 151                   Run BPF program *PROG* in the kernel testing infrastructure
168                                                !! 152                   for BPF, meaning that the program works on the data and
169 bpftool prog tracelog                          !! 153                   context provided by the user, and not on actual packets or
170     Dump the trace pipe of the system to the c !! 154                   monitored functions etc. Return value and duration for the
171     stop printing. BPF programs can write to t !! 155                   test run are printed out to the console.
172     the **bpf_trace_printk**\ () helper. This  !! 156 
173     purposes. For streaming data from BPF prog !! 157                   Input data is read from the *FILE* passed with **data_in**.
174     perf events (see also **bpftool-map**\ (8) !! 158                   If this *FILE* is "**-**", input data is read from standard
175                                                !! 159                   input. Input context, if any, is read from *FILE* passed with
176 bpftool prog run *PROG* data_in *FILE* [data_o !! 160                   **ctx_in**. Again, "**-**" can be used to read from standard
177     Run BPF program *PROG* in the kernel testi !! 161                   input, but only if standard input is not already in use for
178     meaning that the program works on the data !! 162                   input data. If a *FILE* is passed with **data_out**, output
179     user, and not on actual packets or monitor !! 163                   data is written to that file. Similarly, output context is
180     and duration for the test run are printed  !! 164                   written to the *FILE* passed with **ctx_out**. For both
181                                                !! 165                   output flows, "**-**" can be used to print to the standard
182     Input data is read from the *FILE* passed  !! 166                   output (as plain text, or JSON if relevant option was
183     is "**-**", input data is read from standa !! 167                   passed). If output keywords are omitted, output data and
184     is read from *FILE* passed with **ctx_in** !! 168                   context are discarded. Keywords **data_size_out** and
185     read from standard input, but only if stan !! 169                   **ctx_size_out** are used to pass the size (in bytes) for the
186     for input data. If a *FILE* is passed with !! 170                   output buffers to the kernel, although the default of 32 kB
187     written to that file. Similarly, output co !! 171                   should be more than enough for most cases.
188     passed with **ctx_out**. For both output f !! 172 
189     print to the standard output (as plain tex !! 173                   Keyword **repeat** is used to indicate the number of
190     passed). If output keywords are omitted, o !! 174                   consecutive runs to perform. Note that output data and
191     discarded. Keywords **data_size_out** and  !! 175                   context printed to files correspond to the last of those
192     the size (in bytes) for the output buffers !! 176                   runs. The duration printed out at the end of the runs is an
193     default of 32 kB should be more than enoug !! 177                   average over all runs performed by the command.
194                                                !! 178 
195     Keyword **repeat** is used to indicate the !! 179                   Not all program types support test run. Among those which do,
196     perform. Note that output data and context !! 180                   not all of them can take the **ctx_in**/**ctx_out**
197     the last of those runs. The duration print !! 181                   arguments. bpftool does not perform checks on program types.
198     an average over all runs performed by the  << 
199                                                << 
200     Not all program types support test run. Am << 
201     them can take the **ctx_in**/**ctx_out** a << 
202     perform checks on program types.           << 
203                                                << 
204 bpftool prog profile *PROG* [duration *DURATIO << 
205     Profile *METRICs* for bpf program *PROG* f << 
206     user hits <Ctrl+C>. *DURATION* is optional << 
207     the profiling will run up to **UINT_MAX**  << 
208                                                   182 
209 bpftool prog help                              !! 183         **bpftool prog help**
210     Print short help message.                  !! 184                   Print short help message.
211                                                   185 
212 OPTIONS                                           186 OPTIONS
213 =======                                           187 =======
214 .. include:: common_options.rst                !! 188         -h, --help
215                                                !! 189                   Print short generic help message (similar to **bpftool help**).
216 -f, --bpffs                                    << 
217     When showing BPF programs, show file names << 
218                                                   190 
219 -m, --mapcompat                                !! 191         -V, --version
220     Allow loading maps with unknown map defini !! 192                   Print version number (similar to **bpftool version**).
221                                                   193 
222 -n, --nomount                                  !! 194         -j, --json
223     Do not automatically attempt to mount any  !! 195                   Generate JSON output. For commands that cannot produce JSON, this
224     tracefs or BPF virtual file system) when n !! 196                   option has no effect.
225                                                !! 197 
226 -L, --use-loader                               !! 198         -p, --pretty
227     Load program as a "loader" program. This i !! 199                   Generate human-readable JSON output. Implies **-j**.
228     of such programs. When this option is in u !! 200 
229     programs from the object file into the ker !! 201         -f, --bpffs
230     (therefore, the *PATH* must not be provide !! 202                   When showing BPF programs, show file names of pinned
231                                                !! 203                   programs.
232     When combined with the **-d**\ \|\ **--deb !! 204 
233     messages are generated, and the execution  !! 205         -m, --mapcompat
234     the **bpf_trace_printk**\ () helper to log !! 206                   Allow loading maps with unknown map definitions.
235     creating the maps, and loading the program !! 207 
236     as a way to dump those messages).          !! 208         -n, --nomount
                                                   >> 209                   Do not automatically attempt to mount any virtual file system
                                                   >> 210                   (such as tracefs or BPF virtual file system) when necessary.
                                                   >> 211 
                                                   >> 212         -d, --debug
                                                   >> 213                   Print all logs available, even debug-level information. This
                                                   >> 214                   includes logs from libbpf as well as from the verifier, when
                                                   >> 215                   attempting to load programs.
237                                                   216 
238 EXAMPLES                                          217 EXAMPLES
239 ========                                          218 ========
240 **# bpftool prog show**                           219 **# bpftool prog show**
241                                                   220 
242 ::                                                221 ::
243                                                   222 
244     10: xdp  name some_prog  tag 005a3d2123620    223     10: xdp  name some_prog  tag 005a3d2123620c8b  gpl run_time_ns 81632 run_cnt 10
245             loaded_at 2017-09-29T20:11:00+0000    224             loaded_at 2017-09-29T20:11:00+0000  uid 0
246             xlated 528B  jited 370B  memlock 4    225             xlated 528B  jited 370B  memlock 4096B  map_ids 10
247             pids systemd(1)                    << 
248                                                   226 
249 **# bpftool --json --pretty prog show**           227 **# bpftool --json --pretty prog show**
250                                                   228 
251 ::                                                229 ::
252                                                   230 
253     [{                                            231     [{
254             "id": 10,                             232             "id": 10,
255             "type": "xdp",                        233             "type": "xdp",
256             "tag": "005a3d2123620c8b",            234             "tag": "005a3d2123620c8b",
257             "gpl_compatible": true,               235             "gpl_compatible": true,
258             "run_time_ns": 81632,                 236             "run_time_ns": 81632,
259             "run_cnt": 10,                        237             "run_cnt": 10,
260             "loaded_at": 1506715860,              238             "loaded_at": 1506715860,
261             "uid": 0,                             239             "uid": 0,
262             "bytes_xlated": 528,                  240             "bytes_xlated": 528,
263             "jited": true,                        241             "jited": true,
264             "bytes_jited": 370,                   242             "bytes_jited": 370,
265             "bytes_memlock": 4096,                243             "bytes_memlock": 4096,
266             "map_ids": [10                        244             "map_ids": [10
267             ],                                 << 
268             "pids": [{                         << 
269                     "pid": 1,                  << 
270                     "comm": "systemd"          << 
271                 }                              << 
272             ]                                     245             ]
273         }                                         246         }
274     ]                                             247     ]
275                                                   248 
276 |                                                 249 |
277 | **# bpftool prog dump xlated id 10 file /tmp    250 | **# bpftool prog dump xlated id 10 file /tmp/t**
278 | **$ ls -l /tmp/t**                           !! 251 | **# ls -l /tmp/t**
279                                                   252 
280 ::                                                253 ::
281                                                   254 
282     -rw------- 1 root root 560 Jul 22 01:42 /t    255     -rw------- 1 root root 560 Jul 22 01:42 /tmp/t
283                                                   256 
284 **# bpftool prog dump jited tag 005a3d2123620c    257 **# bpftool prog dump jited tag 005a3d2123620c8b**
285                                                   258 
286 ::                                                259 ::
287                                                   260 
288     0:   push   %rbp                              261     0:   push   %rbp
289     1:   mov    %rsp,%rbp                         262     1:   mov    %rsp,%rbp
290     2:   sub    $0x228,%rsp                       263     2:   sub    $0x228,%rsp
291     3:   sub    $0x28,%rbp                        264     3:   sub    $0x28,%rbp
292     4:   mov    %rbx,0x0(%rbp)                    265     4:   mov    %rbx,0x0(%rbp)
293                                                   266 
294 |                                                 267 |
295 | **# mount -t bpf none /sys/fs/bpf/**            268 | **# mount -t bpf none /sys/fs/bpf/**
296 | **# bpftool prog pin id 10 /sys/fs/bpf/prog*    269 | **# bpftool prog pin id 10 /sys/fs/bpf/prog**
297 | **# bpftool prog load ./my_prog.o /sys/fs/bp    270 | **# bpftool prog load ./my_prog.o /sys/fs/bpf/prog2**
298 | **# ls -l /sys/fs/bpf/**                        271 | **# ls -l /sys/fs/bpf/**
299                                                   272 
300 ::                                                273 ::
301                                                   274 
302     -rw------- 1 root root 0 Jul 22 01:43 prog    275     -rw------- 1 root root 0 Jul 22 01:43 prog
303     -rw------- 1 root root 0 Jul 22 01:44 prog    276     -rw------- 1 root root 0 Jul 22 01:44 prog2
304                                                   277 
305 **# bpftool prog dump jited pinned /sys/fs/bpf    278 **# bpftool prog dump jited pinned /sys/fs/bpf/prog opcodes**
306                                                   279 
307 ::                                                280 ::
308                                                   281 
309    0:   push   %rbp                               282    0:   push   %rbp
310         55                                        283         55
311    1:   mov    %rsp,%rbp                          284    1:   mov    %rsp,%rbp
312         48 89 e5                                  285         48 89 e5
313    4:   sub    $0x228,%rsp                        286    4:   sub    $0x228,%rsp
314         48 81 ec 28 02 00 00                      287         48 81 ec 28 02 00 00
315    b:   sub    $0x28,%rbp                         288    b:   sub    $0x28,%rbp
316         48 83 ed 28                               289         48 83 ed 28
317    f:   mov    %rbx,0x0(%rbp)                     290    f:   mov    %rbx,0x0(%rbp)
318         48 89 5d 00                               291         48 89 5d 00
319                                                   292 
320 |                                                 293 |
321 | **# bpftool prog load xdp1_kern.o /sys/fs/bp    294 | **# bpftool prog load xdp1_kern.o /sys/fs/bpf/xdp1 type xdp map name rxcnt id 7**
322 | **# bpftool prog show pinned /sys/fs/bpf/xdp    295 | **# bpftool prog show pinned /sys/fs/bpf/xdp1**
323                                                   296 
324 ::                                                297 ::
325                                                   298 
326     9: xdp  name xdp_prog1  tag 539ec6ce11b52f    299     9: xdp  name xdp_prog1  tag 539ec6ce11b52f98  gpl
327             loaded_at 2018-06-25T16:17:31-0700    300             loaded_at 2018-06-25T16:17:31-0700  uid 0
328             xlated 488B  jited 336B  memlock 4    301             xlated 488B  jited 336B  memlock 4096B  map_ids 7
329                                                   302 
330 **# rm /sys/fs/bpf/xdp1**                         303 **# rm /sys/fs/bpf/xdp1**
331                                                   304 
332 |                                              !! 305 SEE ALSO
333 | **# bpftool prog profile id 337 duration 10  !! 306 ========
334                                                !! 307         **bpf**\ (2),
335 ::                                             !! 308         **bpf-helpers**\ (7),
336                                                !! 309         **bpftool**\ (8),
337          51397 run_cnt                         !! 310         **bpftool-map**\ (8),
338       40176203 cycles                          !! 311         **bpftool-cgroup**\ (8),
339       42518139 instructions    #   1.06 insns  !! 312         **bpftool-feature**\ (8),
340            123 llc_misses      #   2.89 LLC mi !! 313         **bpftool-net**\ (8),
341                                                !! 314         **bpftool-perf**\ (8),
342 |                                              !! 315         **bpftool-btf**\ (8)
343 | Output below is for the trace logs.          << 
344 | Run in separate terminals:                   << 
345 | **# bpftool prog tracelog**                  << 
346 | **# bpftool prog load -L -d file.o**         << 
347                                                << 
348 ::                                             << 
349                                                << 
350     bpftool-620059  [004] d... 2634685.517903: << 
351     bpftool-620059  [004] d... 2634685.517912: << 
352     bpftool-620059  [004] d... 2634685.517997: << 
353     bpftool-620059  [004] d... 2634685.517999: << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php