[ moving the question from StackOverflow where it seems less appropriate ]

The kernel boots with default_hugepagesz=1G option, which defines size of the default page size. So when an application want large memory, the kernel will allocate it with 1G pages.

If the kernel boots with hugepages=N, i.e. allocate N huge pages at boot. So in this case, the kernel will automatically take a page from this pool, thus saving time on allocating memory?

When this pool runs out of available pages, how will the kernel allocate huge memory?

1 Answer 1


The advantage of allocating huge pages at boot is that the pages are pre-allocated, before memory is fragmented. The amount of allocated huge pages can also be changed at runtime, and an overcommit limit can be set — the kernel will allocate new huge pages if necessary, up to the overcommit limit, as long as enough pages are available to convert to huge pages.

See the relevant kernel documentation for details.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.