diff options
author | Rickard Green <[email protected]> | 2011-11-18 12:46:43 +0100 |
---|---|---|
committer | Rickard Green <[email protected]> | 2011-11-18 13:09:16 +0100 |
commit | 58f5f45566b827e74ff623398bdf6d0b6fcebdb3 (patch) | |
tree | 3d68d4afef9e55d4453b8550ba2488d202a2b484 /erts/emulator/beam | |
parent | a8ecde4e398942260153d8b2f37344af259b1007 (diff) | |
download | otp-58f5f45566b827e74ff623398bdf6d0b6fcebdb3.tar.gz otp-58f5f45566b827e74ff623398bdf6d0b6fcebdb3.tar.bz2 otp-58f5f45566b827e74ff623398bdf6d0b6fcebdb3.zip |
Use unbound schedulers as default
As of ERTS version 5.9 (OTP-R15B) the runtime system will by default
not bind schedulers to logical processors.
If the Erlang runtime system is the only operating system process that
binds threads to logical processors, this improves the performance of
the runtime system. However, if other operating system processes (as
for example another Erlang runtime system) also bind threads to logical
processors, there might be a performance penalty instead. In some cases
this performance penalty might be severe. Due to this, we change the
default so that the user must make an active decision in order to bind
schedulers.
Diffstat (limited to 'erts/emulator/beam')
-rw-r--r-- | erts/emulator/beam/erl_cpu_topology.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/erts/emulator/beam/erl_cpu_topology.c b/erts/emulator/beam/erl_cpu_topology.c index 03c0ef904a..cc930ba1e3 100644 --- a/erts/emulator/beam/erl_cpu_topology.c +++ b/erts/emulator/beam/erl_cpu_topology.c @@ -1729,16 +1729,8 @@ erts_init_cpu_topology(void) scheduler2cpu_map[ix].bound_id = -1; } - if (cpu_bind_order == ERTS_CPU_BIND_UNDEFINED) { - int ncpus = erts_get_cpu_configured(cpuinfo); - if (ncpus < 1 || erts_no_schedulers < ncpus) - cpu_bind_order = ERTS_CPU_BIND_NONE; - else - cpu_bind_order = ((system_cpudata || user_cpudata) - && (erts_bind_to_cpu(cpuinfo, -1) != -ENOTSUP) - ? ERTS_CPU_BIND_DEFAULT_BIND - : ERTS_CPU_BIND_NONE); - } + if (cpu_bind_order == ERTS_CPU_BIND_UNDEFINED) + cpu_bind_order = ERTS_CPU_BIND_NONE; reader_groups_map = add_cpu_groups(reader_groups, reader_groups_callback, |