From f41cde310570214b0427c6867e27300d98eaebec Mon Sep 17 00:00:00 2001 From: dallas marlow Date: Thu, 8 May 2014 11:45:44 -0400 Subject: [PATCH] remove anon mmap allocation flag `MAP_HUGETLB` --- util/arena.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/util/arena.cc b/util/arena.cc index 094266a73..96738f8b5 100644 --- a/util/arena.cc +++ b/util/arena.cc @@ -83,8 +83,14 @@ char* Arena::AllocateAligned(size_t bytes, size_t huge_page_tlb_size, size_t reserved_size = ((bytes - 1U) / huge_page_tlb_size + 1U) * huge_page_tlb_size; assert(reserved_size >= bytes); + void* addr = mmap(nullptr, reserved_size, (PROT_READ | PROT_WRITE), - (MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB), 0, 0); + (MAP_PRIVATE | MAP_ANONYMOUS), 0, 0); + + // only supported in kernel's 2.6.34 and above + // void* addr = mmap(nullptr, reserved_size, (PROT_READ | PROT_WRITE), + // (MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB), 0, 0); + if (addr == MAP_FAILED) { Warn(logger, "AllocateAligned fail to allocate huge TLB pages: %s", strerror(errno));