summaryrefslogtreecommitdiffstats
path: root/contrib/jemalloc/src/chunk_mmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/jemalloc/src/chunk_mmap.c')
-rw-r--r--contrib/jemalloc/src/chunk_mmap.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/contrib/jemalloc/src/chunk_mmap.c b/contrib/jemalloc/src/chunk_mmap.c
index e11cc0e..9dea831 100644
--- a/contrib/jemalloc/src/chunk_mmap.c
+++ b/contrib/jemalloc/src/chunk_mmap.c
@@ -72,6 +72,20 @@ pages_unmap(void *addr, size_t size)
}
}
+void
+pages_purge(void *addr, size_t length)
+{
+
+#ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
+# define JEMALLOC_MADV_PURGE MADV_DONTNEED
+#elif defined(JEMALLOC_PURGE_MADVISE_FREE)
+# define JEMALLOC_MADV_PURGE MADV_FREE
+#else
+# error "No method defined for purging unused dirty pages."
+#endif
+ madvise(addr, length, JEMALLOC_MADV_PURGE);
+}
+
static void *
chunk_alloc_mmap_slow(size_t size, size_t alignment, bool unaligned)
{
OpenPOWER on IntegriCloud