diff --git a/src/common/host_memory.cpp b/src/common/host_memory.cpp index 7191b8a12f..bbceca538b 100644 --- a/src/common/host_memory.cpp +++ b/src/common/host_memory.cpp @@ -414,7 +414,15 @@ public: throw std::bad_alloc{}; } } -#else +#elif defined(ANDROID) + virtual_base = static_cast(mmap(nullptr, virtual_size, PROT_NONE, + MAP_PRIVATE | MAP_ANONYMOUS | MAP_NORESERVE, -1, 0)); + if (virtual_base == MAP_FAILED) { + LOG_CRITICAL(HW_Memory, "mmap failed: {}", strerror(errno)); + throw std::bad_alloc{}; + } + madvise(virtual_base, virtual_size, MADV_HUGEPAGE); +#else virtual_base = static_cast(mmap(nullptr, virtual_size, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0)); if (virtual_base == MAP_FAILED) {