GET_HUGE_PAGES(3) GET_HUGE_PAGES(3)

NAME get_huge_pages, free_huge_pages - Allocate and free hugepages

SYNOPSIS #include <hugetlbfs.h>

void *get_huge_pages(size_t len, ghp_t flags); void free_huge_pages(void *ptr);

DESCRIPTION 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 implementa- tion, only the default hugepage size may be allocated via this func- tion. Use gethugepagesize to discover what the alignment should be.

The flags argument changes the behaviour of the function. Flags may be ord together.

GHP_DEFAULT

Allocate a region of memory of the requested length backed by hugepages of the default hugepage size. Return NULL if suffi- cient 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.

RETURN VALUE 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.

SEE ALSO oprofile(1) , gethugepagesize(3) , get_hugepage_region(3) , lib- hugetlbfs(7)

AUTHORS libhugetlbfs was written by various people on the libhugetlbfs-devel mailing list.

October 8, 2008 GET_HUGE_PAGES(3)