diff options
author | Sverker Eriksson <[email protected]> | 2018-01-23 22:26:44 +0100 |
---|---|---|
committer | Sverker Eriksson <[email protected]> | 2018-02-08 17:42:53 +0100 |
commit | 443b2e0fabe9dfbe78d7fe857b29e74f7533da39 (patch) | |
tree | edbf68f40264173f2720f170b401a57d16c1651b /erts/emulator/beam/erl_alloc.c | |
parent | e64a1f429ec5f7534e0201fed42967aeb1aae8d8 (diff) | |
download | otp-443b2e0fabe9dfbe78d7fe857b29e74f7533da39.tar.gz otp-443b2e0fabe9dfbe78d7fe857b29e74f7533da39.tar.bz2 otp-443b2e0fabe9dfbe78d7fe857b29e74f7533da39.zip |
erts: Add migration options "acnl" and "acfml"
acnl: Abandon Carrier Nr Limit
acfml: Abandon Carrier Free block Min Limit
Diffstat (limited to 'erts/emulator/beam/erl_alloc.c')
-rw-r--r-- | erts/emulator/beam/erl_alloc.c | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/erts/emulator/beam/erl_alloc.c b/erts/emulator/beam/erl_alloc.c index 214fb1f2af..b51cf5bdfc 100644 --- a/erts/emulator/beam/erl_alloc.c +++ b/erts/emulator/beam/erl_alloc.c @@ -1372,18 +1372,30 @@ handle_au_arg(struct au_init *auip, switch (sub_param[0]) { case 'a': - if (has_prefix("acul", sub_param)) { - if (!auip->carrier_migration_allowed) { - if (!u_switch) - goto bad_switch; - else { - /* ignore */ - (void) get_acul_value(auip, sub_param + 4, argv, ip); - break; - } - } - auip->init.util.acul = get_acul_value(auip, sub_param + 4, argv, ip); - } + if (sub_param[1] == 'c') { /* Migration parameters "ac*" */ + UWord value; + UWord* wp; + if (!auip->carrier_migration_allowed && !u_switch) + goto bad_switch; + + if (has_prefix("acul", sub_param)) { + value = get_acul_value(auip, sub_param + 4, argv, ip); + wp = &auip->init.util.acul; + } + else if (has_prefix("acnl", sub_param)) { + value = get_amount_value(sub_param + 4, argv, ip); + wp = &auip->init.util.acnl; + } + else if (has_prefix("acfml", sub_param)) { + value = get_amount_value(sub_param + 5, argv, ip); + wp = &auip->init.util.acfml; + } + else + goto bad_switch; + + if (auip->carrier_migration_allowed) + *wp = value; + } else if(has_prefix("asbcst", sub_param)) { auip->init.util.asbcst = get_kb_value(sub_param + 6, argv, ip); } |