From c675fd7f57a5b8d7405d90ac9ca692d442a8f630 Mon Sep 17 00:00:00 2001 From: Alex Zhukov Date: Mon, 10 Mar 2025 13:57:46 -0700 Subject: [PATCH] name anonymous mmap address ranges --- src/prim/unix/prim.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/prim/unix/prim.c b/src/prim/unix/prim.c index 8e3180e6..9650e8f0 100644 --- a/src/prim/unix/prim.c +++ b/src/prim/unix/prim.c @@ -217,7 +217,10 @@ static void* unix_mmap_prim(void* addr, size_t size, size_t try_alignment, int p int err = errno; _mi_trace_message("unable to directly request aligned OS memory (error: %d (0x%x), size: 0x%zx bytes, alignment: 0x%zx, hint address: %p)\n", err, err, size, try_alignment, addr); } - if (p!=MAP_FAILED) return p; + if (p!=MAP_FAILED) { + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, p, size, "mimalloc"); + return p; + } // fall back to regular mmap } } @@ -242,13 +245,17 @@ static void* unix_mmap_prim(void* addr, size_t size, size_t try_alignment, int p #endif _mi_trace_message("unable to directly request hinted aligned OS memory (error: %d (0x%x), size: 0x%zx bytes, alignment: 0x%zx, hint address: %p)\n", err, err, size, try_alignment, hint); } - if (p!=MAP_FAILED) return p; + if (p!=MAP_FAILED) { + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, p, size, "mimalloc"); + return p; + } // fall back to regular mmap } } #endif // regular mmap p = mmap(addr, size, protect_flags, flags, fd, 0); + prctl(PR_SET_VMA, PR_SET_VMA_ANON_NAME, p, size, "mimalloc"); if (p!=MAP_FAILED) return p; // failed to allocate return NULL;