/linux/Documentation/bpf/libbpf/ |
H A D | libbpf_overview.rst | 9 heavy lifting of loading, verifying, and attaching BPF programs to various 15 * Provides high-level and low-level APIs for user space programs to interact 16 with BPF programs. The low-level APIs wrap all the bpf system call 18 over the interactions between user space and BPF programs. 20 The skeleton file simplifies the process for the user space programs to access 21 global variables and work with BPF programs. 25 BPF programs that can be compiled once and run across different kernel 35 A BPF application consists of one or more BPF programs (either cooperating or 37 variables are shared between all BPF programs, which allows them to cooperate on 38 a common set of data. libbpf provides APIs that user space programs can use to [all …]
|
/linux/samples/bpf/ |
H A D | tcp_bpf.readme | 2 programs. These programs attach to a cgroupv2. The following commands create 12 (attach) one of the tcp_*_kern.o programs: 19 The tcp_*_kern.o programs use special print functions to print logging 23 cgroupv2 to which the BPF programs are attached (i.e. under bash shell
|
/linux/Documentation/bpf/ |
H A D | bpf_design_QA.rst | 32 A: Because BPF programs are designed to run in the linux kernel 49 Q: Can BPF programs access instruction pointer or return address? 53 Q: Can BPF programs access stack pointer ? 69 BPF programs and programs call kernel helpers with zero overhead, 71 for JITed BPF programs that are indistinguishable from 112 versions will accept all bpf programs that were accepted by 155 workaround would be acceptable. Turned out that programs lose performance 174 programs for 32-bit architectures. 198 A: YES. BPF instructions, arguments to BPF programs, set of helper 200 of ABI. However there is one specific exception to tracing programs [all …]
|
H A D | drgn.rst | 23 `bpf_inspect.py`_ is a tool intended to inspect BPF programs and maps. It can 24 iterate over all programs and maps in the system and print basic information 27 The main use-case `bpf_inspect.py`_ covers is to show BPF programs of types 29 programs via ``freplace``/``fentry``/``fexit`` mechanisms, since there is no 35 List BPF programs (full names are obtained from BTF):: 49 Find BPF programs attached to BPF program ``test_pkt_access``:: 62 are multiple other tracing and ext programs attached to functions in 80 drgn script to list BPF programs or maps and their properties 90 prog (p) list BPF programs 97 information about BPF programs, maps and other objects.
|
H A D | bpf_prog_run.rst | 4 Running BPF programs from userspace 7 This document describes the ``BPF_PROG_RUN`` facility for running BPF programs 20 can be used to unit test BPF programs against user-supplied context objects, and 21 as way to explicitly execute programs in the kernel for their side effects. The 25 The ``BPF_PROG_RUN`` command can be used to execute BPF programs of the 46 execute the program and return the results to userspace. Note that programs will 49 returned to userspace. A separate mode for live execution of XDP programs is 52 Running XDP programs in "live frame mode" 55 The ``BPF_PROG_RUN`` command has a separate mode for running live XDP programs, 56 which can be used to execute XDP programs in a way where packets will actually [all …]
|
H A D | bpf_licensing.rst | 61 Using BPF programs in the Linux kernel 75 modules. BPF programs can be proprietary if they don't use "GPL only" BPF 83 and struct_ops BPF programs are implicitly calling "GPL only" functions. 84 The same restriction applies to BPF programs that call kernel functions 87 Packaging BPF programs with user space applications 90 Generally, proprietary-licensed applications and GPL licensed BPF programs 92 separate executable processes. This applies to both cBPF and eBPF programs.
|
H A D | prog_lsm.rst | 8 These BPF programs allow runtime instrumentation of the LSM hooks by privileged 23 eBPF programs that use Documentation/bpf/btf.rst do not need to include kernel 51 build environment matches the environment the BPF programs are 54 The ``vmlinux.h`` can then simply be included in the BPF programs without 57 The eBPF programs can be declared using the``BPF_PROG`` 98 eBPF programs can be loaded with the :manpage:`bpf(2)` syscall's 120 The LSM allows attachment of eBPF programs as LSM hooks using :manpage:`bpf(2)`
|
H A D | prog_sk_lookup.rst | 40 Multiple programs can be attached to one network namespace. Programs will be 46 The attached BPF sk_lookup programs run whenever the transport layer needs to 52 The attached BPF programs must return with either ``SK_PASS`` or ``SK_DROP`` 65 When multiple programs are attached, the end result is determined from return 66 codes of all the programs according to the following rules: 74 4. If all programs returned ``SK_PASS`` and none of them selected a socket,
|
H A D | map_sockmap.rst | 28 These maps may have BPF programs attached to them, specifically a parser program 36 ``sk_psock`` inherits the programs that are attached to the map. 40 in having multiple parser programs the update will return an EBUSY error. 42 The supported programs to attach to these maps are: 55 programs to the same map. 57 The attach types for the map programs are: 65 programs: ``bpf_msg_apply_bytes()`` and ``bpf_msg_cork_bytes()``. With 66 ``bpf_msg_apply_bytes()`` BPF programs can tell the infrastructure how many 73 available to ``BPF_PROG_TYPE_SK_MSG`` BPF programs to pull in data and set the 89 This helper is used in programs implementing policies at the socket level. If [all …]
|
H A D | map_cgroup_storage.rst | 9 storage. It is only available with ``CONFIG_CGROUP_BPF``, and to programs that 10 attach to cgroups; the programs are made available by the same Kconfig. The 39 ``struct bpf_cgroup_storage_key``, then programs of different attach types 49 can be accessed by multiple programs across different CPUs, and user should 140 program, sharing of this cgroup's storage with other BPF programs were 143 Since Linux 5.9, storage can be shared by multiple programs. When a program is
|
/linux/tools/bpf/bpftool/Documentation/ |
H A D | bpftool-net.rst | 45 For programs attached to a particular cgroup, e.g., 49 msg, reuseport} and lwt/seg6 bpf programs, users should consult other 54 flow_dissector and finally netfilter programs. Both xdp programs and 55 tcx/netkit/tc programs are ordered based on ifindex number. If multiple bpf 56 programs attached to the same networking device through **tc**, the order 57 will be first all bpf programs attached to tcx, netkit, then tc classes, 58 then all bpf programs attached to non clsact qdiscs, and finally all bpf 59 programs attached to root and clsact qdisc.
|
H A D | bpftool-prog.rst | 71 Show information about loaded programs. If *PROG* is specified show 72 information only about given programs, otherwise list all programs 74 match several programs which will all be shown. 79 Since Linux 5.1 the kernel can collect statistics on BPF programs (such as 87 that hold open file descriptors (FDs) against BPF programs. On such kernels 91 Dump eBPF instructions of the programs from the kernel. By default, eBPF 96 In case of **tag** or **name**, *PROG* may match several programs which 107 If the programs have line_info available, the source line will be 133 loadall** pins all programs from the *OBJ* under *PATH* directory. **type** 171 stop printing. BPF programs can write to this trace pipe at runtime with [all …]
|
H A D | bpftool-cgroup.rst | 53 List all programs attached to the cgroup *CGROUP*. 58 If **effective** is specified retrieve effective programs that will execute 63 Iterate over all cgroups in *CGROUP_ROOT* and list all attached programs. 70 If **effective** is specified retrieve effective programs that will execute 87 Multiple programs are allowed to be attached to a cgroup with **multi**. 135 Show file names of pinned programs.
|
H A D | bpftool-gen.rst | 56 shorten and simplify code to load and work with BPF programs from userspace 64 In addition to simple and reliable access to maps and programs, skeleton 66 within BPF object. When requested, supported BPF programs will be 68 user in pre-allocated fields in skeleton struct. For BPF programs that 73 support to detach programs and free up resources. 91 keep working with specific maps, programs, etc. 106 This function creates maps, loads and verifies BPF programs, initializes 115 already loaded BPF object. Only BPF programs of types supported by libbpf 117 links instantiated. For other BPF programs, user can manually create a 123 Detach and unload BPF programs, free up all the resources used by [all …]
|
H A D | common_options.rst | 10 libbfd to provide the disassembler for JIT-ted programs (**bpftool prog 23 from libbpf as well as from the verifier, when attempting to load programs.
|
/linux/kernel/bpf/preload/ |
H A D | Kconfig | 15 This builds kernel module with several embedded BPF programs that are 17 useful in debugging and introspection of BPF programs and maps. 24 This builds bpf_preload kernel module with embedded BPF programs for
|
/linux/Documentation/trace/ |
H A D | user_events.rst | 22 Typically programs will register a set of events that they wish to expose to 96 allows programs to prevent themselves from being blocked when their event 103 tracepoint with a new unique id. Recording programs need to scan tracefs for 108 a hex string. Recording programs should ensure the tracepoint name starts with 148 User programs are encouraged to use clearly sized types like u32. 153 This allows user programs to describe custom structs out to tools, if required. 173 event (in both user and kernel space). User programs should use a separate file 177 to the event. If programs do not want auto-delete, they must use the 230 in realtime. This allows user programs to only incur the cost of the write() or 234 tools attach/detach from the event. User programs simply check if the bit is set [all …]
|
/linux/drivers/hid/bpf/ |
H A D | Kconfig | 10 This option allows to support eBPF programs on the HID subsystem. 11 eBPF programs can fix HID devices in a lighter way than a full
|
/linux/kernel/bpf/ |
H A D | Kconfig | 39 Enable the bpf() system call that allows to manipulate BPF programs 48 BPF programs are normally handled by a BPF interpreter. This option 51 programs. 99 Enables instrumentation of the security hooks with BPF programs for
|
/linux/Documentation/networking/ |
H A D | atm.rst | 8 several user-mode programs are required to assist the kernel. These 9 programs and related material can be found via the ATM on Linux Web
|
/linux/drivers/media/radio/wl128x/ |
H A D | Kconfig | 12 In order to control your radio card, you will need to use programs 14 this API and pointers to "v4l2" programs may be found at
|
/linux/drivers/media/test-drivers/vidtv/ |
H A D | vidtv_channel.c | 419 struct vidtv_psi_table_pat_program *programs = NULL; in vidtv_channel_si_init() local 432 programs = vidtv_channel_pat_prog_cat_into_new(m); in vidtv_channel_si_init() 433 if (!programs) in vidtv_channel_si_init() 458 programs->service_id); in vidtv_channel_si_init() 463 vidtv_psi_pat_program_assign(m->si.pat, programs); in vidtv_channel_si_init() 495 vidtv_psi_pat_program_destroy(programs); in vidtv_channel_si_init()
|
/linux/Documentation/bpf/standardization/ |
H A D | abi.rst | 19 * R0: return value from function calls, and exit value for BPF programs 24 R0 - R5 are scratch registers and BPF programs needs to spill/fill them if
|
/linux/tools/testing/selftests/hid/ |
H A D | hid_bpf.c | 73 static void load_programs(const struct test_program programs[], in load_programs() argument 95 programs[i].name); in load_programs() 96 ASSERT_OK_PTR(prog) TH_LOG("can not find program by name '%s'", programs[i].name); in load_programs() 101 programs[i].name + 4); in load_programs() 103 programs[i].name + 4); in load_programs() 126 programs[i].name + 4); in load_programs() 128 programs[i].name + 4); in load_programs() 132 programs[i].name + 4); in load_programs()
|
/linux/Documentation/ABI/testing/ |
H A D | sysfs-devices | 16 Or rely on the uevent messages to notify programs of 22 programs must be able to handle such occurrences.
|