Scroll to navigation

ALLOC_CONTIG_RANGE(9) Memory Management in Linux ALLOC_CONTIG_RANGE(9)

NAME

alloc_contig_range - - tries to allocate given range of pages

SYNOPSIS

int alloc_contig_range(unsigned long start, unsigned long end, unsigned migratetype, gfp_t gfp_mask);

ARGUMENTS

unsigned long start
start PFN to allocate

unsigned long end

one-past-the-last PFN to allocate

unsigned migratetype

migratetype of the underlaying pageblocks (either #MIGRATE_MOVABLE or #MIGRATE_CMA). All pageblocks in range must have the same migratetype and it must be either of the two.

gfp_t gfp_mask

GFP mask to use during compaction

DESCRIPTION

The PFN range does not have to be pageblock or MAX_ORDER_NR_PAGES aligned, however it's the caller's responsibility to guarantee that we are the only thread that changes migrate type of pageblocks the pages fall in.

The PFN range must belong to a single zone.

Returns zero on success or negative error code. On success all pages which PFN is in [start, end) are allocated for the caller and need to be freed with free_contig_range.

COPYRIGHT

July 2017 Kernel Hackers Manual 4.11