From 0fb68ef1f8c7f44c6f7edc1cc461d2b598b96fd9 Mon Sep 17 00:00:00 2001 From: Sverker Eriksson Date: Tue, 4 Dec 2012 17:57:51 +0100 Subject: erts: Set super alignment (256kb) and limits for sbct (8Mb) and lmbcs (128Mb) --- erts/doc/src/erts_alloc.xml | 6 ++++-- erts/emulator/beam/erl_alloc_util.h | 3 ++- 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 (mseg_alloc) multiblock carrier size (in kilobytes). See the description on how sizes for mseg_alloc multiblock carriers are decided - in "the alloc_util framework" section. + in "the alloc_util framework" section. On 32-bit Unix style OS + this limit can not be set higher than 128 megabyte. mbcgs ]]> (mseg_alloc) 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. + carriers. On 32-bit Unix style OS this threshold can not be set higher + than 8 megabytes. sbmbcs ]]> 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 -- cgit v1.2.3