| /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/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 | 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 | prog_lsm.rst | 5 LSM BPF Programs 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 | 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 | 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 | 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/Documentation/trace/ |
| H A D | user_events.rst | 13 Programs can view status of the events via 17 Programs can also use /sys/kernel/tracing/dynamic_events to register and 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 [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/tools/bpf/bpftool/Documentation/ |
| H A D | bpftool-prog.rst | 72 Show information about loaded programs. If *PROG* is specified show 73 information only about given programs, otherwise list all programs 75 match several programs which will all be shown. 80 Since Linux 5.1 the kernel can collect statistics on BPF programs (such as 88 that hold open file descriptors (FDs) against BPF programs. On such kernels 92 Dump eBPF instructions of the programs from the kernel. By default, eBPF 97 In case of **tag** or **name**, *PROG* may match several programs which 108 If the programs have line_info available, the source line will be 134 loadall** pins all programs from the *OBJ* under *PATH* directory. **type** 159 other feature relying on BTF (such as fentry/fexit programs, struct_ops) [all …]
|
| 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-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.
|
| /linux/drivers/media/test-drivers/vidtv/ |
| H A D | vidtv_channel.c | 11 * Their programs will be concatenated to populate the PAT 262 /* Concatenate the programs */ in vidtv_channel_pat_prog_cat_into_new() 278 "No programs found for channel %s\n", in vidtv_channel_pat_prog_cat_into_new() 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() 462 /* assemble all programs and assign to PAT */ in vidtv_channel_si_init() 463 vidtv_psi_pat_program_assign(m->si.pat, programs); in vidtv_channel_si_init() 464 programs = NULL; in vidtv_channel_si_init() [all …]
|
| /linux/drivers/gpu/drm/ |
| H A D | drm_color_mgmt.c | 643 * drm_crtc_load_gamma_888 - Programs gamma ramp for RGB888-like formats 648 * Programs the gamma ramp specified in @lut to hardware. The input gamma 662 * drm_crtc_load_gamma_565_from_888 - Programs gamma ramp for RGB565-like formats 667 * Programs the gamma ramp specified in @lut to hardware. The input gamma 692 * drm_crtc_load_gamma_555_from_888 - Programs gamma ramp for RGB555-like formats 697 * Programs the gamma ramp specified in @lut to hardware. The input gamma 727 * drm_crtc_fill_gamma_888 - Programs a default gamma ramp for RGB888-like formats 731 * Programs a default gamma ramp to hardware. 753 * drm_crtc_fill_gamma_565 - Programs a default gamma ramp for RGB565-like formats 757 * Programs a default gamma ramp to hardware. [all …]
|
| /linux/Documentation/hid/ |
| H A D | hid-bpf.rst | 53 Note: distribution of eBPF programs and their inclusion in the kernel is not 132 In-tree HID-BPF programs and ``udev-hid-bpf`` 149 Available types of programs 153 declare our programs. 189 User API data structures available in programs: 195 Available API that can be used in all HID-BPF struct_ops programs: 201 Available API that can be used in syscall HID-BPF programs or in sleepable HID-BPF struct_ops progr… 249 programs can be attached to the same device. If a HID-BPF struct_ops has a 258 Note that if there are multiple programs using the ``BPF_F_BEFORE`` flag, 264 Whenever a matching event is raised, the eBPF programs are called one after the other [all …]
|
| /linux/kernel/bpf/preload/ |
| H A D | Kconfig | 10 This builds kernel module with several embedded BPF programs that are 12 useful in debugging and introspection of BPF programs and maps. 19 This builds bpf_preload kernel module with embedded BPF programs for
|
| /linux/include/uapi/linux/ |
| H A D | landlock.h | 77 * By default, denied accesses originating from programs that sandbox themselves 81 * program are not logged by default. The rationale is that programs should know 82 * their own behavior, but not necessarily the behavior of other programs. This 83 * default configuration is suitable for most programs that sandbox themselves. 84 * For specific use cases, the following flags allow programs to modify this 95 * :manpage:`execve(2)` call). This is intended for programs that execute 97 * interpreters. Programs that only sandbox themselves should not set this 104 * programs within the created Landlock domain. This flag is recommended 114 * sandboxing tools that may launch programs which themselves create
|
| /linux/tools/testing/selftests/bpf/prog_tests/ |
| H A D | cgroup_attach_autodetach.c | 43 /* create a cgroup, attach two programs and remember their ids */ in serial_test_cgroup_attach_autodetach() 58 /* make sure that programs are attached and run some traffic */ in serial_test_cgroup_attach_autodetach() 71 /* close programs and cgroup fd */ in serial_test_cgroup_attach_autodetach() 80 /* leave the cgroup and remove it. don't detach programs */ in serial_test_cgroup_attach_autodetach()
|
| /linux/include/linux/ |
| H A D | hid_bpf.h | 17 * it might break existing out of the tree bpf programs. 21 * struct hid_bpf_ctx - User accessible data for all HID programs 35 * Programs can get the available valid size in data by fetching this field. 36 * Programs can also change this value by returning a positive number in the 41 * once all BPF programs have been run). 85 * programs to a HID device
|
| /linux/Documentation/admin-guide/ |
| H A D | serial-console.rst | 127 Programs that want to do something with the virtual console usually 129 and your console is NOT the virtual console some programs will fail. 130 Those are programs that want to access the VT interface, and use 131 ``/dev/console instead of /dev/tty0``. Some of those programs are:: 135 It should be fixed in modern versions of these programs though.
|
| /linux/security/ |
| H A D | Kconfig | 67 WARNING: This feature breaks programs which rely on relocating 184 Programs which use vm86 functionality or have some need to map 192 binary programs through the "usermode helper" kernel 204 and choose what real programs are called. 206 If you wish for all usermode helper programs are to be 220 If you wish for all usermode helper programs to be disabled,
|
| /linux/Documentation/admin-guide/hw-vuln/ |
| H A D | spectre.rst | 268 User programs should use address space randomization to make attacks 532 User programs can mitigate Spectre variant 1 using LFENCE or "bounds 535 For Spectre variant 2 mitigation, individual user programs 541 because the kernel clears the IBRS bit. In this case, the userspace programs 554 Programs that disable their indirect branch speculation will have 557 User programs should use address space randomization 619 2. Protect sensitive programs 622 For security-sensitive programs that have secrets (e.g. crypto 627 3. Sandbox untrusted programs 630 Untrusted programs that could be a source of attacks can be cordoned [all …]
|
| /linux/security/tomoyo/ |
| H A D | Kconfig | 24 Some programs access thousands of objects, so running 25 such programs in "learning mode" dulls the system response 27 This is the safeguard for such programs.
|
| /linux/tools/testing/selftests/hid/ |
| H A D | hid_bpf.c | 20 struct bpf_link *hid_links[3]; /* max number of programs loaded in a single test */ in FIXTURE() 73 static void load_programs(const struct test_program programs[], in load_programs() argument 83 TH_LOG("too many programs are to be loaded"); in load_programs() 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() [all …]
|