diff options
author | Erlang/OTP <[email protected]> | 2018-02-12 13:38:23 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2018-02-12 13:38:23 +0100 |
commit | 8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6 (patch) | |
tree | b45e01c062de78b9229556faed6ce70d532dce57 /erts/emulator/beam/erl_goodfit_alloc.c | |
parent | 5fcbb31beb1437124a181be4bd1cb2649d79c0b3 (diff) | |
parent | 06e88d07a4719a0e15b4e666b16347fad463cee6 (diff) | |
download | otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.tar.gz otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.tar.bz2 otp-8cfaa0cf95da91be39d116c2fb3b9d3419c9cfa6.zip |
Merge branch 'sverker/maint-20/alloc-n-migration/ERIERL-88' into maint-20
* sverker/maint-20/alloc-n-migration/ERIERL-88:
erts: Add system_flags(erts_alloc,"+M?sbct *")
erts: Add age order first fit allocator strategies
erts: Refactor erl_ao_firstfit_alloc
erts: Add migration options "acnl" and "acfml"
erts: Add more stats for mbcs_pool
erts: Fix alloc_SUITE:migration
stdlib: Make ets_SUITE memory check try again
erts: Improve carrier pool search
erts: Improve alloc_SUITE:migration
erts: Refactor carrier dealloc migration
Diffstat (limited to 'erts/emulator/beam/erl_goodfit_alloc.c')
-rw-r--r-- | erts/emulator/beam/erl_goodfit_alloc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_goodfit_alloc.c b/erts/emulator/beam/erl_goodfit_alloc.c index 50aa41b4d2..a38f6c7daf 100644 --- a/erts/emulator/beam/erl_goodfit_alloc.c +++ b/erts/emulator/beam/erl_goodfit_alloc.c @@ -170,6 +170,7 @@ static void unlink_free_block (Allctr_t *, Block_t *); static void update_last_aux_mbc (Allctr_t *, Carrier_t *); static Eterm info_options (Allctr_t *, char *, fmtfn_t *, void *, Uint **, Uint *); +static int gfalc_try_set_dyn_param(Allctr_t*, Eterm param, Uint value); static void init_atoms (void); #ifdef ERTS_ALLOC_UTIL_HARD_DEBUG @@ -250,6 +251,8 @@ erts_gfalc_start(GFAllctr_t *gfallctr, if (!erts_alcu_start(allctr, init)) return NULL; + allctr->try_set_dyn_param = gfalc_try_set_dyn_param; + if (allctr->min_block_size != MIN_BLK_SZ) return NULL; @@ -584,6 +587,15 @@ info_options(Allctr_t *allctr, return res; } +static int gfalc_try_set_dyn_param(Allctr_t* allctr, Eterm param, Uint value) +{ + if (param == am_sbct) { + /* Cannot change 'sbct' without rearranging buckets */ + return 0; + } + return erts_alcu_try_set_dyn_param(allctr, param, value); +} + /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\ * NOTE: erts_gfalc_test() is only supposed to be used for testing. * * * |