diff options
author | Rickard Green <[email protected]> | 2011-11-18 09:20:17 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2011-11-18 09:20:17 +0100 |
commit | ac59f1fae260d24ea23f577b739101ad64ffa4fa (patch) | |
tree | 6df011c7ae2c16078fca5ddd9113e6a8e077b8a1 /erts/emulator/beam/erl_init.c | |
parent | 1d4c9de4304de621a41dcbe5eef866d449b03a12 (diff) | |
parent | ac7dcc23af68ef5a01ce5ca03ad485595bf5e18b (diff) | |
download | otp-ac59f1fae260d24ea23f577b739101ad64ffa4fa.tar.gz otp-ac59f1fae260d24ea23f577b739101ad64ffa4fa.tar.bz2 otp-ac59f1fae260d24ea23f577b739101ad64ffa4fa.zip |
Merge branch 'rickard/sched-compact-load/OTP-9695'
* rickard/sched-compact-load/OTP-9695:
Add switch that can disable scheduler compaction of load
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r-- | erts/emulator/beam/erl_init.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index 7ae9f990ad..6c4ba2af68 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -513,6 +513,8 @@ void erts_usage(void) erts_fprintf(stderr, "-rg amount set reader groups limit\n"); erts_fprintf(stderr, "-sbt type set scheduler bind type, valid types are:\n"); erts_fprintf(stderr, " u|ns|ts|ps|s|nnts|nnps|tnnps|db\n"); + erts_fprintf(stderr, "-scl bool enable/disable compaction of scheduler load,\n"); + erts_fprintf(stderr, " see the erl(1) documentation for more info.\n"); erts_fprintf(stderr, "-sct cput set cpu topology,\n"); erts_fprintf(stderr, " see the erl(1) documentation for more info.\n"); erts_fprintf(stderr, "-swt val set scheduler wakeup threshold, valid values are:\n"); @@ -610,6 +612,7 @@ early_init(int *argc, char **argv) /* char envbuf[21]; /* enough for any 64-bit integer */ size_t envbufsz; + erts_sched_compact_load = 1; use_multi_run_queue = 1; erts_printf_eterm_func = erts_printf_term; erts_disable_tolerant_timeofday = 0; @@ -1198,6 +1201,19 @@ erl_start(int argc, char **argv) erts_usage(); } } + else if (has_prefix("cl", sub_param)) { + arg = get_arg(sub_param+2, argv[i+1], &i); + if (sys_strcmp("true", arg) == 0) + erts_sched_compact_load = 1; + else if (sys_strcmp("false", arg) == 0) + erts_sched_compact_load = 0; + else { + erts_fprintf(stderr, + "bad scheduler compact load value '%s'\n", + arg); + erts_usage(); + } + } else if (has_prefix("ct", sub_param)) { arg = get_arg(sub_param+2, argv[i+1], &i); res = erts_init_cpu_topology_string(arg); |