diff options
author | Rickard Green <[email protected]> | 2014-01-16 23:41:47 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2014-01-23 14:55:52 +0100 |
commit | e7ea832a4a3a8ba2f94ce02a47ca34b60277cb0a (patch) | |
tree | 9f73f4b211ba4a86fcc11e17acd52c8aa7e3c931 /erts/emulator/beam/erl_init.c | |
parent | fc8cc0057b1f492f359d4f644fe93fdbc75074e8 (diff) | |
download | otp-e7ea832a4a3a8ba2f94ce02a47ca34b60277cb0a.tar.gz otp-e7ea832a4a3a8ba2f94ce02a47ca34b60277cb0a.tar.bz2 otp-e7ea832a4a3a8ba2f94ce02a47ca34b60277cb0a.zip |
Add support for scheduler utilization balancing
For more information see documentation of the new command line argument +sub
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r-- | erts/emulator/beam/erl_init.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index 1af80dd04b..1d4f617746 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -537,6 +537,12 @@ 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"); +#if ERTS_HAVE_SCHED_UTIL_BALANCING_SUPPORT_OPT + erts_fprintf(stderr, "-sub bool enable/disable scheduler utilization balancing,\n"); +#else + erts_fprintf(stderr, "-sub false disable scheduler utilization balancing,\n"); +#endif + 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.\n"); erts_fprintf(stderr, "-swct val set scheduler wake cleanup threshold, valid values are:\n"); @@ -1512,6 +1518,26 @@ erl_start(int argc, char **argv) erts_usage(); } } + else if (has_prefix("ub", sub_param)) { + arg = get_arg(sub_param+2, argv[i+1], &i); + if (sys_strcmp("true", arg) == 0) { +#if ERTS_HAVE_SCHED_UTIL_BALANCING_SUPPORT_OPT + erts_sched_balance_util = 1; +#else + erts_fprintf(stderr, + "scheduler utilization balancing not " + "supported on this system\n"); + erts_usage(); +#endif + } + else if (sys_strcmp("false", arg) == 0) + erts_sched_balance_util = 0; + else { + erts_fprintf(stderr, "bad scheduler utilization balancing " + " value '%s'\n", arg); + erts_usage(); + } + } else if (has_prefix("wct", sub_param)) { arg = get_arg(sub_param+3, argv[i+1], &i); if (erts_sched_set_wake_cleanup_threshold(arg) != 0) { |