aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/alloc
diff options
context:
space:
mode:
authorlloyd <[email protected]>2014-04-14 23:08:09 +0000
committerlloyd <[email protected]>2014-04-14 23:08:09 +0000
commitc4d7caf1efb11e88ffe824760946b2e38f7d39db (patch)
tree347484f01edb79441ef5a56b4e04db5f33bc4b07 /src/lib/alloc
parent340cc7f520ef95aeb7a4692357b870003dd7f0f8 (diff)
Use MADV_DONTDUMP on Linux, equiv to MAP_NOCORE on BSD
Diffstat (limited to 'src/lib/alloc')
-rw-r--r--src/lib/alloc/locking_allocator/locking_allocator.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/lib/alloc/locking_allocator/locking_allocator.cpp b/src/lib/alloc/locking_allocator/locking_allocator.cpp
index 8e3f7e142..4b66ea018 100644
--- a/src/lib/alloc/locking_allocator/locking_allocator.cpp
+++ b/src/lib/alloc/locking_allocator/locking_allocator.cpp
@@ -1,6 +1,6 @@
/*
* Mlock Allocator
-* (C) 2012 Jack Lloyd
+* (C) 2012,2014 Jack Lloyd
*
* Distributed under the terms of the Botan license
*/
@@ -250,6 +250,10 @@ mlock_allocator::mlock_allocator() :
throw std::runtime_error("Could not mlock " + std::to_string(m_poolsize) + " bytes");
}
+#if defined(MADV_DONTDUMP)
+ ::madvise(m_pool, m_poolsize, MADV_DONTDUMP);
+#endif
+
m_freelist.push_back(std::make_pair(0, m_poolsize));
}
}