fix linux compilation
This commit is contained in:
parent
3fadf4abaf
commit
2d10c78587
@ -18,6 +18,7 @@ set(mi_install_dir "lib/mimalloc-${mi_version}")
|
|||||||
set(mi_sources
|
set(mi_sources
|
||||||
src/stats.c
|
src/stats.c
|
||||||
src/os.c
|
src/os.c
|
||||||
|
src/arena.c
|
||||||
src/memory.c
|
src/memory.c
|
||||||
src/segment.c
|
src/segment.c
|
||||||
src/page.c
|
src/page.c
|
||||||
|
@ -381,7 +381,7 @@ static bool mi_arena_add(mi_arena_t* arena) {
|
|||||||
#include <errno.h> // ENOMEM
|
#include <errno.h> // ENOMEM
|
||||||
|
|
||||||
// reserve at a specific numa node
|
// reserve at a specific numa node
|
||||||
static int mi_reserve_huge_os_pages_at(size_t pages, int numa_node) mi_attr_noexcept {
|
int mi_reserve_huge_os_pages_at(size_t pages, int numa_node) mi_attr_noexcept {
|
||||||
size_t hsize = 0;
|
size_t hsize = 0;
|
||||||
void* p = _mi_os_alloc_huge_os_pages(pages, numa_node, &hsize);
|
void* p = _mi_os_alloc_huge_os_pages(pages, numa_node, &hsize);
|
||||||
if (p==NULL) return ENOMEM;
|
if (p==NULL) return ENOMEM;
|
||||||
@ -432,6 +432,7 @@ int mi_reserve_huge_os_pages_interleave(size_t pages) mi_attr_noexcept {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int mi_reserve_huge_os_pages(size_t pages, double max_secs, size_t* pages_reserved) mi_attr_noexcept {
|
int mi_reserve_huge_os_pages(size_t pages, double max_secs, size_t* pages_reserved) mi_attr_noexcept {
|
||||||
|
UNUSED(max_secs);
|
||||||
_mi_verbose_message("mi_reserve_huge_os_pages is deprecated: use mi_reserve_huge_os_pages_interleave/at instead\n");
|
_mi_verbose_message("mi_reserve_huge_os_pages is deprecated: use mi_reserve_huge_os_pages_interleave/at instead\n");
|
||||||
if (pages_reserved != NULL) *pages_reserved = 0;
|
if (pages_reserved != NULL) *pages_reserved = 0;
|
||||||
int err = mi_reserve_huge_os_pages_interleave(pages);
|
int err = mi_reserve_huge_os_pages_interleave(pages);
|
||||||
|
@ -434,7 +434,7 @@ static void mi_process_load(void) {
|
|||||||
|
|
||||||
if (mi_option_is_enabled(mi_option_reserve_huge_os_pages)) {
|
if (mi_option_is_enabled(mi_option_reserve_huge_os_pages)) {
|
||||||
size_t pages = mi_option_get(mi_option_reserve_huge_os_pages);
|
size_t pages = mi_option_get(mi_option_reserve_huge_os_pages);
|
||||||
double max_secs = (double)pages / 2.0; // 0.5s per page (1GiB)
|
// double max_secs = (double)pages / 2.0; // 0.5s per page (1GiB)
|
||||||
mi_reserve_huge_os_pages_interleave(pages);
|
mi_reserve_huge_os_pages_interleave(pages);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
4
src/os.c
4
src/os.c
@ -851,7 +851,7 @@ static void* mi_os_alloc_huge_os_pagesx(size_t size, int numa_node)
|
|||||||
static void* mi_os_alloc_huge_os_pagesx(size_t size, int numa_node) {
|
static void* mi_os_alloc_huge_os_pagesx(size_t size, int numa_node) {
|
||||||
mi_assert_internal(size%GiB == 0);
|
mi_assert_internal(size%GiB == 0);
|
||||||
bool is_large = true;
|
bool is_large = true;
|
||||||
void* p = mi_unix_mmap(NULL, MI_HUGE_OS_PAGE_SIZE, MI_SEGMENT_SIZE, PROT_READ | PROT_WRITE, true, true, &is_large);
|
void* p = mi_unix_mmap(NULL, size, MI_SEGMENT_SIZE, PROT_READ | PROT_WRITE, true, true, &is_large);
|
||||||
if (p == NULL) return NULL;
|
if (p == NULL) return NULL;
|
||||||
#ifdef MI_HAS_NUMA
|
#ifdef MI_HAS_NUMA
|
||||||
if (numa_node >= 0 && numa_node < 8*MI_INTPTR_SIZE) {
|
if (numa_node >= 0 && numa_node < 8*MI_INTPTR_SIZE) {
|
||||||
@ -861,6 +861,8 @@ static void* mi_os_alloc_huge_os_pagesx(size_t size, int numa_node) {
|
|||||||
_mi_warning_message("failed to bind huge (1GiB) pages to NUMA node %d: %s\n", numa_node, strerror(errno));
|
_mi_warning_message("failed to bind huge (1GiB) pages to NUMA node %d: %s\n", numa_node, strerror(errno));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
UNUSED(numa_node);
|
||||||
#endif
|
#endif
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user