From deb89401fd0c3e59167c01182ba1fcfa23adc3f6 Mon Sep 17 00:00:00 2001 From: Tyler Neely Date: Fri, 9 May 2014 14:49:25 -0400 Subject: [PATCH] have proprocessor choose correct mmap args --- util/arena.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/util/arena.cc b/util/arena.cc index 96738f8b5..1284c8b35 100644 --- a/util/arena.cc +++ b/util/arena.cc @@ -84,12 +84,13 @@ char* Arena::AllocateAligned(size_t bytes, size_t huge_page_tlb_size, ((bytes - 1U) / huge_page_tlb_size + 1U) * huge_page_tlb_size; assert(reserved_size >= bytes); +#ifdef MAP_HUGETLB + void* addr = mmap(nullptr, reserved_size, (PROT_READ | PROT_WRITE), + (MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB), 0, 0); +#else void* addr = mmap(nullptr, reserved_size, (PROT_READ | PROT_WRITE), (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); +#endif if (addr == MAP_FAILED) { Warn(logger, "AllocateAligned fail to allocate huge TLB pages: %s",