aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_alloc.c
diff options
context:
space:
mode:
authorJohn Högberg <[email protected]>2018-06-21 17:48:35 +0200
committerJohn Högberg <[email protected]>2018-06-28 09:06:43 +0200
commit29ce7ab0e4403fa688d1e5e5e2170e88d7e8f299 (patch)
tree5f9c9b8e3f07d1a249c2796416ba45c4bea5ab13 /erts/emulator/beam/erl_alloc.c
parentc67615343b8ab10f10ffc40eccc24c6ec36cd9cd (diff)
downloadotp-29ce7ab0e4403fa688d1e5e5e2170e88d7e8f299.tar.gz
otp-29ce7ab0e4403fa688d1e5e5e2170e88d7e8f299.tar.bz2
otp-29ce7ab0e4403fa688d1e5e5e2170e88d7e8f299.zip
Add 'chaos first fit' to test mixed-order carrier migration
Diffstat (limited to 'erts/emulator/beam/erl_alloc.c')
-rw-r--r--erts/emulator/beam/erl_alloc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/erts/emulator/beam/erl_alloc.c b/erts/emulator/beam/erl_alloc.c
index bd0f136cd8..493c3799c2 100644
--- a/erts/emulator/beam/erl_alloc.c
+++ b/erts/emulator/beam/erl_alloc.c
@@ -1400,7 +1400,15 @@ handle_au_arg(struct au_init *auip,
auip->init.aoff.blk_order = FF_AOBF;
}
else {
- bad_value(param, sub_param + 1, alg);
+ if (auip->init.util.alloc_no == ERTS_ALC_A_TEST
+ && sys_strcmp("chaosff", alg) == 0) {
+ auip->astrat = ERTS_ALC_S_FIRSTFIT;
+ auip->init.aoff.crr_order = FF_CHAOS;
+ auip->init.aoff.blk_order = FF_CHAOS;
+ }
+ else {
+ bad_value(param, sub_param + 1, alg);
+ }
}
if (!strategy_support_carrier_migration(auip))
auip->init.util.acul = 0;