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, __arena 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:
Example
Docs could be improved
This part of the docs is incomplete, contributions are very welcome