Skip to content

KFunc bpf_arena_alloc_pages

v6.9

Allocate pages of memory for a arena.

Definition

p__map: Pointer to the BPF_MAP_TYPE_ARENA map.

addr__ign: Address of the start of the page(s) to be allocated, must be a page aligned address.

page_cnt: Number of pages to allocate.

node_id: NUMA node to allocate memory from.

flags: Flags for future use, currently no valid flags exist.

void *bpf_arena_alloc_pages(void *p__map, void *addr__ign, u32 page_cnt, int node_id, u64 flags)

Note

This function may sleep, and therefore can only be used from sleepable programs.

Usage

A BPF arena is a region of memory that can be shared between BPF programs and userspace programs. This allows for the creation of custom data structures that can be shared between BPF programs and userspace programs.

An arena is created as a map, upon its creation a maximum memory size is specified, but this memory isn't allocated at creation, rather, an arena allows on demand allocation of memory pages.

The kfunc is used to allocate these pages.

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