constexpr size_t alignment = 2 * 1024 * 1024; // assumed 2MB page sizes
size_t size = ((allocSize + alignment - 1) / alignment) * alignment; // multiple of alignment
- mem = aligned_alloc(alignment, size);
+ if (posix_memalign(&mem, alignment, size))
+ mem = nullptr;
madvise(mem, allocSize, MADV_HUGEPAGE);
return mem;
}