Skip to content

KFunc bpf_arena_reserve_pages

v6.17

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:

Example

Docs could be improved

This part of the docs is incomplete, contributions are very welcome