Add configuration option controlling DSS support
In many environments, the fallback `sbrk(2)` allocation path is never used even if the system supports the syscall; if you're at the point where `mmap(2)` is failing, `sbrk(2)` is unlikely to succeed. Without changing the default, I've added the ability to disable the usage of DSS altogether, so that you do not need to pay for the additional code size and handful of extra runtime branches in such environments.
This commit is contained in:
parent
6816b23862
commit
ea5b7bea31
15
configure.ac
15
configure.ac
@ -1469,6 +1469,18 @@ if test "x$zero_realloc_default_free" = "x1" ; then
|
|||||||
AC_DEFINE([JEMALLOC_ZERO_REALLOC_DEFAULT_FREE], [ ], [ ])
|
AC_DEFINE([JEMALLOC_ZERO_REALLOC_DEFAULT_FREE], [ ], [ ])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl Support allocation from DSS by default
|
||||||
|
AC_ARG_ENABLE([dss],
|
||||||
|
[AS_HELP_STRING([--disable-dss], [Disable usage of sbrk(2)])],
|
||||||
|
[if test "x$enable_dss" = "xno" ; then
|
||||||
|
enable_dss="0"
|
||||||
|
else
|
||||||
|
enable_dss="1"
|
||||||
|
fi
|
||||||
|
],
|
||||||
|
[enable_dss="1"]
|
||||||
|
)
|
||||||
|
|
||||||
dnl Enable allocation from DSS if supported by the OS.
|
dnl Enable allocation from DSS if supported by the OS.
|
||||||
have_dss="1"
|
have_dss="1"
|
||||||
dnl Check whether the BSD/SUSv1 sbrk() exists. If not, disable DSS support.
|
dnl Check whether the BSD/SUSv1 sbrk() exists. If not, disable DSS support.
|
||||||
@ -1482,7 +1494,7 @@ else
|
|||||||
have_dss="0"
|
have_dss="0"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$have_dss" = "x1" ; then
|
if test "x$have_dss" = "x1" -a "x$enable_dss" = "x1" ; then
|
||||||
AC_DEFINE([JEMALLOC_DSS], [ ], [ ])
|
AC_DEFINE([JEMALLOC_DSS], [ ], [ ])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -2791,4 +2803,5 @@ AC_MSG_RESULT([lazy_lock : ${enable_lazy_lock}])
|
|||||||
AC_MSG_RESULT([cache-oblivious : ${enable_cache_oblivious}])
|
AC_MSG_RESULT([cache-oblivious : ${enable_cache_oblivious}])
|
||||||
AC_MSG_RESULT([pageid : ${enable_pageid}])
|
AC_MSG_RESULT([pageid : ${enable_pageid}])
|
||||||
AC_MSG_RESULT([cxx : ${enable_cxx}])
|
AC_MSG_RESULT([cxx : ${enable_cxx}])
|
||||||
|
AC_MSG_RESULT([dss : ${enable_dss}])
|
||||||
AC_MSG_RESULT([===============================================================================])
|
AC_MSG_RESULT([===============================================================================])
|
||||||
|
Loading…
Reference in New Issue
Block a user