aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/erl_init.c
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2012-04-25 13:11:31 +0200
committerErlang/OTP <[email protected]>2012-04-25 13:11:31 +0200
commit269c223d7bdf194cc3ea25d792328d8b502d4655 (patch)
tree699f7cc5dd337eee5d07b7689f8cff29c90b748d /erts/emulator/beam/erl_init.c
parent8629cdc77a00384ae4197e7f135285c8efa2c9f3 (diff)
parent447eecd1af7ba3e3a46098d93b88964c0f71ca41 (diff)
downloadotp-269c223d7bdf194cc3ea25d792328d8b502d4655.tar.gz
otp-269c223d7bdf194cc3ea25d792328d8b502d4655.tar.bz2
otp-269c223d7bdf194cc3ea25d792328d8b502d4655.zip
Merge branch 'rickard/sched-busy-wait/OTP-10044' into maint-r15
* rickard/sched-busy-wait/OTP-10044: Add switch controlling scheduler busy wait Conflicts: erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r--erts/emulator/beam/erl_init.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c
index faf980b237..8bcba9de15 100644
--- a/erts/emulator/beam/erl_init.c
+++ b/erts/emulator/beam/erl_init.c
@@ -511,6 +511,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, "-sbwt val set scheduler busy wait threshold, valid values are:\n");
+ erts_fprintf(stderr, " none|very_short|short|medium|long|very_long.\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");
@@ -1200,6 +1202,16 @@ erl_start(int argc, char **argv)
erts_usage();
}
}
+ else if (has_prefix("bwt", sub_param)) {
+ arg = get_arg(sub_param+3, argv[i+1], &i);
+ if (erts_sched_set_busy_wait_threshold(arg) != 0) {
+ erts_fprintf(stderr, "bad scheduler busy wait threshold: %s\n",
+ arg);
+ erts_usage();
+ }
+ VERBOSE(DEBUG_SYSTEM,
+ ("scheduler wakup threshold: %s\n", arg));
+ }
else if (has_prefix("cl", sub_param)) {
arg = get_arg(sub_param+2, argv[i+1], &i);
if (sys_strcmp("true", arg) == 0)