KFunc bpf_arena_reserve_pages
Reserve pages of memory for a arena.
Definition
p__map
: Pointer to the BPF_MAP_TYPE_ARENA
map.
ptr__ign
: Address of the start of the page(s) to be reserved, must be a page aligned address.
page_cnt
: Number of pages to reserve.
Signature
int bpf_arena_reserve_pages(void *p__map, void *ptr__ign, u32 page_cnt)
Note
This function may sleep, and therefore can only be used from sleepable programs.
Usage
Reserves a region of the mapping to prevent it from being mapped. This prevents the range from
being populated using bpf_arena_alloc_pages
. These regions serve as guards against out-of-bounds accesses and are useful for debugging arena-related code.
Reserved pages can be unreserved using bpf_arena_free_pages
. They can also be allocated from userspace through minor faults. It is up to the user to prevent erroneous frees and/or use the BPF_F_SEGV_ON_FAULT
flag to catch stray userspace accesses.
Program types
The following program types can make use of this kfunc:
BPF_PROG_TYPE_CGROUP_DEVICE
v6.12 -BPF_PROG_TYPE_CGROUP_SKB
BPF_PROG_TYPE_CGROUP_SOCK
v6.12 -BPF_PROG_TYPE_CGROUP_SOCKOPT
v6.12 -BPF_PROG_TYPE_CGROUP_SOCK_ADDR
v6.7 -BPF_PROG_TYPE_CGROUP_SYSCTL
v6.12 -BPF_PROG_TYPE_LSM
BPF_PROG_TYPE_LWT_IN
BPF_PROG_TYPE_LWT_OUT
BPF_PROG_TYPE_LWT_SEG6LOCAL
BPF_PROG_TYPE_LWT_XMIT
BPF_PROG_TYPE_NETFILTER
BPF_PROG_TYPE_PERF_EVENT
v6.12 -BPF_PROG_TYPE_SCHED_ACT
BPF_PROG_TYPE_SCHED_CLS
BPF_PROG_TYPE_SK_SKB
BPF_PROG_TYPE_SOCKET_FILTER
BPF_PROG_TYPE_SOCK_OPS
v6.15 -BPF_PROG_TYPE_STRUCT_OPS
BPF_PROG_TYPE_SYSCALL
BPF_PROG_TYPE_TRACEPOINT
v6.12 -BPF_PROG_TYPE_TRACING
BPF_PROG_TYPE_XDP
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome