diff options
author | Sverker Eriksson <sverker@erlang.org> | 2012-12-04 17:57:51 +0100 |
---|---|---|
committer | Björn-Egil Dahlberg <egil@erlang.org> | 2012-12-14 15:12:59 +0100 |
commit | 0fb68ef1f8c7f44c6f7edc1cc461d2b598b96fd9 (patch) | |
tree | ce092b1f446a5325b1789424956f34ae00d92868 | |
parent | 6c95e5c7bc376a2b04cdd9b23d0441fa9bee9e78 (diff) | |
download | otp-0fb68ef1f8c7f44c6f7edc1cc461d2b598b96fd9.tar.gz otp-0fb68ef1f8c7f44c6f7edc1cc461d2b598b96fd9.tar.bz2 otp-0fb68ef1f8c7f44c6f7edc1cc461d2b598b96fd9.zip |
erts: Set super alignment (256kb) and limits for sbct (8Mb) and lmbcs (128Mb)
-rw-r--r-- | erts/doc/src/erts_alloc.xml | 6 | ||||
-rw-r--r-- | erts/emulator/beam/erl_alloc_util.h | 3 | ||||
-rw-r--r-- | erts/emulator/sys/common/erl_mseg.h | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/erts/doc/src/erts_alloc.xml b/erts/doc/src/erts_alloc.xml index ec5e7d9b74..87d6682328 100644 --- a/erts/doc/src/erts_alloc.xml +++ b/erts/doc/src/erts_alloc.xml @@ -341,7 +341,8 @@ Largest (<c>mseg_alloc</c>) multiblock carrier size (in kilobytes). See <seealso marker="#mseg_mbc_sizes">the description on how sizes for mseg_alloc multiblock carriers are decided</seealso> - in "the <c>alloc_util</c> framework" section.</item> + in "the <c>alloc_util</c> framework" section. On 32-bit Unix style OS + this limit can not be set higher than 128 megabyte.</item> <tag><marker id="M_mbcgs"><c><![CDATA[+M<S>mbcgs <ratio>]]></c></marker></tag> <item> (<c>mseg_alloc</c>) multiblock carrier growth stages. See @@ -413,7 +414,8 @@ Singleblock carrier threshold. Blocks larger than this threshold will be placed in singleblock carriers. Blocks smaller than this threshold will be placed in multiblock - carriers.</item> + carriers. On 32-bit Unix style OS this threshold can not be set higher + than 8 megabytes.</item> <tag><marker id="M_sbmbcs"><c><![CDATA[+M<S>sbmbcs <size>]]></c></marker></tag> <item> Small block multiblock carrier size (in bytes). Memory blocks smaller diff --git a/erts/emulator/beam/erl_alloc_util.h b/erts/emulator/beam/erl_alloc_util.h index 423bb0517e..e0754e7f69 100644 --- a/erts/emulator/beam/erl_alloc_util.h +++ b/erts/emulator/beam/erl_alloc_util.h @@ -226,7 +226,8 @@ erts_aint32_t erts_alcu_fix_alloc_shrink(Allctr_t *, erts_aint32_t); # ifdef ARCH_64 # define MBC_ABLK_OFFSET_BITS 24 # elif HAVE_SUPER_ALIGNED_MB_CARRIERS -# define MBC_ABLK_OFFSET_BITS 13 +# define MBC_ABLK_OFFSET_BITS 9 + /* Affects hard limits for sbct and lmbcs documented in erts_alloc.xml */ # endif #endif #ifndef MBC_ABLK_OFFSET_BITS diff --git a/erts/emulator/sys/common/erl_mseg.h b/erts/emulator/sys/common/erl_mseg.h index 8f8cb0e121..6f373f13f9 100644 --- a/erts/emulator/sys/common/erl_mseg.h +++ b/erts/emulator/sys/common/erl_mseg.h @@ -39,7 +39,8 @@ #endif #if HAVE_SUPER_ALIGNED_MB_CARRIERS -# define MSEG_ALIGN_BITS (17) +# define MSEG_ALIGN_BITS (18) + /* Affects hard limits for sbct and lmbcs documented in erts_alloc.xml */ #else /* If we don't use super aligned multiblock carriers * we will mmap with page size alignment (and thus use corresponding |