diff options
Diffstat (limited to 'vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp')
-rw-r--r-- | vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp b/vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp index 8e7f1265550..00916ec9fac 100644 --- a/vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp +++ b/vespamalloc/src/vespamalloc/malloc/load_as_huge.cpp @@ -20,8 +20,9 @@ mmap_huge(size_t sz) { assert ((sz % HUGEPAGE_SIZE) == 0); void * mem = mmap(nullptr, sz, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0); assert(mem != MAP_FAILED); - int retval = madvise(mem, sz, MADV_HUGEPAGE); - assert(retval == 0); + if (madvise(mem, sz, MADV_HUGEPAGE) != 0) { + perror("load_as_huge.cpp:mmap_huge => madvise( MADV_HUGEPAGE) failed"); + } return mem; } @@ -74,8 +75,9 @@ remap_segments(size_t base_vaddr, const Elf64_Phdr * segments, size_t count) { size_t sz = segments[i].p_memsz; last_end = dest + sz; - int madvise_retval = madvise(dest, sz, MADV_HUGEPAGE); - assert(madvise_retval == 0); + if (madvise(dest, sz, MADV_HUGEPAGE) != 0) { + perror("load_as_huge.cpp:mmap_huge => madvise( MADV_HUGEPAGE) failed"); + } non_optimized_non_inlined_memcpy(dest, reinterpret_cast<void*>(vaddr), sz); int prot = PROT_READ; if (segments[i].p_flags & PF_X) prot|= PROT_EXEC; |