aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_init.c
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2012-01-31 13:54:36 +0100
committerErlang/OTP <[email protected]>2012-01-31 13:54:36 +0100
commit7e547ba8221e8e63e5afb62e802318b810f8fafb (patch)
tree9173322f952723d6dba36b98ee991640dfb6f291 /erts/emulator/beam/erl_init.c
parentb55c3d29a3d9efce2ce6548963809fc3b7ab8729 (diff)
parentac7dcc23af68ef5a01ce5ca03ad485595bf5e18b (diff)
downloadotp-7e547ba8221e8e63e5afb62e802318b810f8fafb.tar.gz
otp-7e547ba8221e8e63e5afb62e802318b810f8fafb.tar.bz2
otp-7e547ba8221e8e63e5afb62e802318b810f8fafb.zip
Merge branch 'rickard/sched-compact-load/OTP-9695' into maint-r14
* 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.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index e5fd2547a0..ceaf08ff86 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -510,6 +510,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");
@@ -605,6 +607,7 @@ early_init(int *argc, char **argv) /*
int max_reader_groups;
int reader_groups;
+ erts_sched_compact_load = 1;
use_multi_run_queue = 1;
erts_printf_eterm_func = erts_printf_term;
erts_disable_tolerant_timeofday = 0;
@@ -1152,6 +1155,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);