Alexei Starovoitov says: ==================== pull-request: bpf-next 2023-07-13 We've added 67 non-merge commits during the last 15 day(s) which contain a total of 106 files changed, 4444 insertions(+), 619 deletions(-). The main changes are: 1) Fix bpftool build in presence of stale vmlinux.h, from Alexander Lobakin. 2) Introduce bpf_me_mcache_free_rcu() and fix OOM under stress, from Alexei Starovoitov. 3) Teach verifier actual bounds of bpf_get_smp_processor_id() and fix perf+libbpf issue related to custom section handling, from Andrii Nakryiko. 4) Introduce bpf map element count, from Anton Protopopov. 5) Check skb ownership against full socket, from Kui-Feng Lee. 6) Support for up to 12 arguments in BPF trampoline, from Menglong Dong. 7) Export rcu_request_urgent_qs_task, from Paul E. McKenney. 8) Fix BTF walking of unions, from Yafang Shao. 9) Extend link_info for kprobe_multi and perf_event links, from Yafang Shao. * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next: (67 commits) selftests/bpf: Add selftest for PTR_UNTRUSTED bpf: Fix an error in verifying a field in a union selftests/bpf: Add selftests for nested_trust bpf: Fix an error around PTR_UNTRUSTED selftests/bpf: add testcase for TRACING with 6+ arguments bpf, x86: allow function arguments up to 12 for TRACING bpf, x86: save/restore regs with BPF_DW size bpftool: Use "fallthrough;" keyword instead of comments bpf: Add object leak check. bpf: Convert bpf_cpumask to bpf_mem_cache_free_rcu. bpf: Introduce bpf_mem_free_rcu() similar to kfree_rcu(). selftests/bpf: Improve test coverage of bpf_mem_alloc. rcu: Export rcu_request_urgent_qs_task() bpf: Allow reuse from waiting_for_gp_ttrace list. bpf: Add a hint to allocated objects. bpf: Change bpf_mem_cache draining process. bpf: Further refactor alloc_bulk(). bpf: Factor out inc/dec of active flag into helpers. bpf: Refactor alloc_bulk(). bpf: Let free_all() return the number of freed elements. ... ====================
Showing the changes to include/uapi (1 of 106 files). Show all
Unified · Split
| @@ -1057,6 +1057,16 @@ enum bpf_link_type { · 1056 unmodified lines | |||
| 1057 | MAX_BPF_LINK_TYPE, | 1057 | MAX_BPF_LINK_TYPE, |
| 1058 | }; | 1058 | }; |
| 1059 | 1059 | ||
| 1060 | enum bpf_perf_event_type { | ||
| 1061 | BPF_PERF_EVENT_UNSPEC = 0, | ||
| 1062 | BPF_PERF_EVENT_UPROBE = 1, | ||
| 1063 | BPF_PERF_EVENT_URETPROBE = 2, | ||
| 1064 | BPF_PERF_EVENT_KPROBE = 3, | ||
| 1065 | BPF_PERF_EVENT_KRETPROBE = 4, | ||
| 1066 | BPF_PERF_EVENT_TRACEPOINT = 5, | ||
| 1067 | BPF_PERF_EVENT_EVENT = 6, | ||
| 1068 | }; | ||
| 1069 | |||
| 1060 | /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command | 1070 | /* cgroup-bpf attach flags used in BPF_PROG_ATTACH command |
| 1061 | * | 1071 | * |
| 1062 | * NONE(default): No further bpf programs allowed in the subtree. | 1072 | * NONE(default): No further bpf programs allowed in the subtree. |
| @@ -6439,6 +6449,36 @@ struct bpf_link_info { · 5376 unmodified lines | |||
| 6439 | __s32 priority; | 6449 | __s32 priority; |
| 6440 | __u32 flags; | 6450 | __u32 flags; |
| 6441 | } netfilter; | 6451 | } netfilter; |
| 6452 | struct { | ||
| 6453 | __aligned_u64 addrs; | ||
| 6454 | __u32 count; /* in/out: kprobe_multi function count */ | ||
| 6455 | __u32 flags; | ||
| 6456 | } kprobe_multi; | ||
| 6457 | struct { | ||
| 6458 | __u32 type; /* enum bpf_perf_event_type */ | ||
| 6459 | __u32 :32; | ||
| 6460 | union { | ||
| 6461 | struct { | ||
| 6462 | __aligned_u64 file_name; /* in/out */ | ||
| 6463 | __u32 name_len; | ||
| 6464 | __u32 offset; /* offset from file_name */ | ||
| 6465 | } uprobe; /* BPF_PERF_EVENT_UPROBE, BPF_PERF_EVENT_URETPROBE */ | ||
| 6466 | struct { | ||
| 6467 | __aligned_u64 func_name; /* in/out */ | ||
| 6468 | __u32 name_len; | ||
| 6469 | __u32 offset; /* offset from func_name */ | ||
| 6470 | __u64 addr; | ||
| 6471 | } kprobe; /* BPF_PERF_EVENT_KPROBE, BPF_PERF_EVENT_KRETPROBE */ | ||
| 6472 | struct { | ||
| 6473 | __aligned_u64 tp_name; /* in/out */ | ||
| 6474 | __u32 name_len; | ||
| 6475 | } tracepoint; /* BPF_PERF_EVENT_TRACEPOINT */ | ||
| 6476 | struct { | ||
| 6477 | __u64 config; | ||
| 6478 | __u32 type; | ||
| 6479 | } event; /* BPF_PERF_EVENT_EVENT */ | ||
| 6480 | }; | ||
| 6481 | } perf_event; | ||
| 6442 | }; | 6482 | }; |
| 6443 | } __attribute__((aligned(8))); | 6483 | } __attribute__((aligned(8))); |
| 6444 | 6484 | ||