get_huge_pages, free_huge_pages - Allocate and free hugepages
#include <hugetlbfs.h>
void *get_huge_pages(size_t len, ghp_t flags);
void free_huge_pages(void *ptr);
get_huge_pages() allocates a memory region
len bytes in size
backed by hugepages. Hugepages may be of benefit to applications that use
large amounts of address space and suffer a performance hit due to TLB misses.
Wall-clock time or oprofile can be used to determine if there is a performance
benefit from using hugepages or not.
The
len parameter must be hugepage-aligned. In the current
implementation, only the default hugepage size may be allocated via this
function. Use
gethugepagesize to discover what the alignment should be.
The
flags argument changes the behaviour of the function. Flags may be
or'd together.
- GHP_DEFAULT
-
Allocate a region of memory of the requested length backed by hugepages of
the default hugepage size. Return NULL if sufficient pages are not
available
free_huge_pages() frees a region of memory allocated by
get_huge_pages(). The behaviour of the function if another pointer is
used, valid or otherwise, is undefined.
On success, a pointer is returned to the allocated memory. On error, NULL is
returned. errno will be set based on what the failure of mmap() was due to.
oprofile(1) ,
gethugepagesize(3) ,
get_hugepage_region(3) ,
libhugetlbfs(7)
libhugetlbfs was written by various people on the libhugetlbfs-devel mailing
list.