diff options
author | Rickard Green <[email protected]> | 2011-11-18 15:19:46 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2011-12-01 09:35:23 +0100 |
commit | 8781932b3b8769b6f208ac7c00471122ec7dd055 (patch) | |
tree | 6f9e3a8bd496498615fc7f6bdc2df8ea90b81b16 /erts/emulator/beam/erl_init.c | |
parent | c23286a3b8d33a4e61b97896e1c713036bc17cb2 (diff) | |
download | otp-8781932b3b8769b6f208ac7c00471122ec7dd055.tar.gz otp-8781932b3b8769b6f208ac7c00471122ec7dd055.tar.bz2 otp-8781932b3b8769b6f208ac7c00471122ec7dd055.zip |
Remove common run-queue in SMP case
The common run-queue implementation is removed since it is unused,
untested, undocumented, unsupported, and only complicates the code.
A spinlock used by the run-queue management sometimes got heavily
contended. This code has now been rewritten, and the spinlock
has been removed.
Diffstat (limited to 'erts/emulator/beam/erl_init.c')
-rw-r--r-- | erts/emulator/beam/erl_init.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/erts/emulator/beam/erl_init.c b/erts/emulator/beam/erl_init.c index 05fa10964a..fa4bab07b8 100644 --- a/erts/emulator/beam/erl_init.c +++ b/erts/emulator/beam/erl_init.c @@ -112,7 +112,6 @@ Eterm erts_error_logger_warnings; /* What to map warning logs to, am_error, int erts_compat_rel; -static int use_multi_run_queue; static int no_schedulers; static int no_schedulers_online; @@ -253,8 +252,7 @@ erl_init(int ncpu) erts_init_time(); erts_init_sys_common_misc(); erts_init_process(ncpu); - erts_init_scheduling(use_multi_run_queue, - no_schedulers, + erts_init_scheduling(no_schedulers, no_schedulers_online); erts_init_cpu_topology(); /* Must be after init_scheduling */ erts_alloc_late_init(); @@ -610,7 +608,6 @@ early_init(int *argc, char **argv) /* char envbuf[21]; /* enough for any 64-bit integer */ size_t envbufsz; - use_multi_run_queue = 1; erts_printf_eterm_func = erts_printf_term; erts_disable_tolerant_timeofday = 0; display_items = 200; @@ -1243,12 +1240,8 @@ erl_start(int argc, char **argv) erts_usage(); } } - else if (sys_strcmp("mrq", sub_param) == 0) - use_multi_run_queue = 1; else if (sys_strcmp("nsp", sub_param) == 0) erts_use_sender_punish = 0; - else if (sys_strcmp("srq", sub_param) == 0) - 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) { |