mirror of
https://github.com/torvalds/linux
synced 2024-09-29 16:00:27 +00:00
a70f5d840a
Improve the formatting of the attach flags for cgroup programs in the relevant man page, and fix typos ("can be on of", "an userspace inet socket") when introducing that list. Also fix a couple of other trivial issues in docs. [ Quentin: Fixed trival issues in bpftool-gen.rst and bpftool-iter.rst ] Signed-off-by: Rameez Rehman <rameezrehman408@hotmail.com> Signed-off-by: Quentin Monnet <qmo@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20240331200346.29118-4-qmo@kernel.org
73 lines
2 KiB
ReStructuredText
73 lines
2 KiB
ReStructuredText
.. SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
|
|
============
|
|
bpftool-iter
|
|
============
|
|
-------------------------------------------------------------------------------
|
|
tool to create BPF iterators
|
|
-------------------------------------------------------------------------------
|
|
|
|
:Manual section: 8
|
|
|
|
.. include:: substitutions.rst
|
|
|
|
SYNOPSIS
|
|
========
|
|
|
|
**bpftool** [*OPTIONS*] **iter** *COMMAND*
|
|
|
|
*OPTIONS* := { |COMMON_OPTIONS| }
|
|
|
|
*COMMANDS* := { **pin** | **help** }
|
|
|
|
ITER COMMANDS
|
|
=============
|
|
|
|
| **bpftool** **iter pin** *OBJ* *PATH* [**map** *MAP*]
|
|
| **bpftool** **iter help**
|
|
|
|
|
| *OBJ* := /a/file/of/bpf_iter_target.o
|
|
| *MAP* := { **id** *MAP_ID* | **pinned** *FILE* }
|
|
|
|
DESCRIPTION
|
|
===========
|
|
bpftool iter pin *OBJ* *PATH* [map *MAP*]
|
|
A bpf iterator combines a kernel iterating of particular kernel data (e.g.,
|
|
tasks, bpf_maps, etc.) and a bpf program called for each kernel data object
|
|
(e.g., one task, one bpf_map, etc.). User space can *read* kernel iterator
|
|
output through *read()* syscall.
|
|
|
|
The *pin* command creates a bpf iterator from *OBJ*, and pin it to *PATH*.
|
|
The *PATH* should be located in *bpffs* mount. It must not contain a dot
|
|
character ('.'), which is reserved for future extensions of *bpffs*.
|
|
|
|
Map element bpf iterator requires an additional parameter *MAP* so bpf
|
|
program can iterate over map elements for that map. User can have a bpf
|
|
program in kernel to run with each map element, do checking, filtering,
|
|
aggregation, etc. without copying data to user space.
|
|
|
|
User can then *cat PATH* to see the bpf iterator output.
|
|
|
|
bpftool iter help
|
|
Print short help message.
|
|
|
|
OPTIONS
|
|
=======
|
|
.. include:: common_options.rst
|
|
|
|
EXAMPLES
|
|
========
|
|
**# bpftool iter pin bpf_iter_netlink.o /sys/fs/bpf/my_netlink**
|
|
|
|
::
|
|
|
|
Create a file-based bpf iterator from bpf_iter_netlink.o and pin it
|
|
to /sys/fs/bpf/my_netlink
|
|
|
|
**# bpftool iter pin bpf_iter_hashmap.o /sys/fs/bpf/my_hashmap map id 20**
|
|
|
|
::
|
|
|
|
Create a file-based bpf iterator from bpf_iter_hashmap.o and map with
|
|
id 20, and pin it to /sys/fs/bpf/my_hashmap
|