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_DEVICEv6.12 -BPF_PROG_TYPE_CGROUP_SKBBPF_PROG_TYPE_CGROUP_SOCKv6.12 -BPF_PROG_TYPE_CGROUP_SOCKOPTv6.12 -BPF_PROG_TYPE_CGROUP_SOCK_ADDRv6.7 -BPF_PROG_TYPE_CGROUP_SYSCTLv6.12 -BPF_PROG_TYPE_LSMBPF_PROG_TYPE_LWT_INBPF_PROG_TYPE_LWT_OUTBPF_PROG_TYPE_LWT_SEG6LOCALBPF_PROG_TYPE_LWT_XMITBPF_PROG_TYPE_NETFILTERBPF_PROG_TYPE_PERF_EVENTv6.12 -BPF_PROG_TYPE_SCHED_ACTBPF_PROG_TYPE_SCHED_CLSBPF_PROG_TYPE_SK_SKBBPF_PROG_TYPE_SOCKET_FILTERBPF_PROG_TYPE_SOCK_OPSv6.15 -BPF_PROG_TYPE_STRUCT_OPSBPF_PROG_TYPE_SYSCALLBPF_PROG_TYPE_TRACEPOINTv6.12 -BPF_PROG_TYPE_TRACINGBPF_PROG_TYPE_XDP
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome