diff options
author | Rickard Green <[email protected]> | 2012-03-28 14:03:25 +0200 |
---|---|---|
committer | Rickard Green <[email protected]> | 2012-04-23 11:48:49 +0200 |
commit | b74e9a3d03d685345a8fa592b033a9d691e6e7c0 (patch) | |
tree | b57b567ee50c28dbde1f7b6d245264bc1b9b20bc /erts/emulator/beam/erl_init.c | |
parent | ac7dcc23af68ef5a01ce5ca03ad485595bf5e18b (diff) | |
download | otp-b74e9a3d03d685345a8fa592b033a9d691e6e7c0.tar.gz otp-b74e9a3d03d685345a8fa592b033a9d691e6e7c0.tar.bz2 otp-b74e9a3d03d685345a8fa592b033a9d691e6e7c0.zip |
Implement proposal for new scheduler wakeup strategy
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r-- | erts/emulator/beam/erl_init.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index 02efd2adb6..066ceff194 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -514,6 +514,8 @@ void erts_usage(void) 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, "-sws val set scheduler wakeup strategy, valid values are:\n"); + erts_fprintf(stderr, " default|legacy|proposal.\n"); erts_fprintf(stderr, "-swt val set scheduler wakeup threshold, valid values are:\n"); erts_fprintf(stderr, " very_low|low|medium|high|very_high.\n"); erts_fprintf(stderr, "-sss size suggested stack size in kilo words for scheduler threads,\n"); @@ -1217,13 +1219,23 @@ erl_start(int argc, char **argv) use_multi_run_queue = 0; else if (sys_strcmp("wt", sub_param) == 0) { arg = get_arg(sub_param+2, argv[i+1], &i); - if (erts_sched_set_wakeup_limit(arg) != 0) { + if (erts_sched_set_wakeup_other_thresold(arg) != 0) { erts_fprintf(stderr, "scheduler wakeup threshold: %s\n", arg); erts_usage(); } VERBOSE(DEBUG_SYSTEM, - ("scheduler wakup threshold: %s\n", arg)); + ("scheduler wakeup threshold: %s\n", arg)); + } + else if (sys_strcmp("ws", sub_param) == 0) { + arg = get_arg(sub_param+2, argv[i+1], &i); + if (erts_sched_set_wakeup_other_type(arg) != 0) { + erts_fprintf(stderr, "scheduler wakeup strategy: %s\n", + arg); + erts_usage(); + } + VERBOSE(DEBUG_SYSTEM, + ("scheduler wakeup threshold: %s\n", arg)); } else if (has_prefix("ss", sub_param)) { /* suggested stack size (Kilo Words) for scheduler threads */ |