aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2016-02-22Merge branch 'maint'Hans Bolinder
* maint: Fix a few dialyzer warnings
2016-02-22Fix a few dialyzer warningsHans Bolinder
2016-02-21Skip run queue lock check for dirty schedulersSteve Vinoski
The wake_scheduler function asserts that the run queue is not locked, but this assertion sometimes fails for dirty schedulers (in January 2016 a user in erlang-questions reported a dirty schedulers problem related to this). After discussing it with Rickard, we decided modifying the assertion was the most practical way to address the problem.
2016-02-20beam_load.c: Add a function to check for an on_load functionBjörn Gustavsson
We will need a way to check whether an prepared BEAM modules has an on_load function.
2016-02-19Merge branch 'rickard/rq-state-bug/OTP-13298' into maintRickard Green
* rickard/rq-state-bug/OTP-13298: Fix bug causing run-queue mask to become inconsistent
2016-02-18erts: Fix lock checker for process locksSverker Eriksson
Do lock order check *before* trying to seize lock... duh!
2016-02-18Merge branch 'sverk/erts-hipe_x86_signal-cleanups'Sverker Eriksson
OTP-13341 * sverk/erts-hipe_x86_signal-cleanups: hipe_sigaltstack: correct initialization of ss.ss_flags hipe_x86_signal: cleanups hipe_x86_signal: cleanups hipe_x86_signal: cleanups hipe_x86_signal: cleanups hipe_x86_signal: cleanups hipe_x86_signal: cleanups
2016-02-18Improve cmpxchg8b/cmpxchg16b inline asmRickard Green
Clang didn't like that ecx/rcx was mapped to input and output variables of different types.
2016-02-18Merge branch 'sverk/fix-list-length-int/OTP-13288'Sverker Eriksson
* sverk/fix-list-length-int/OTP-13288: erts: Fix error cases in enif_get_list_length erts: Use Sint instead of int for list lengths
2016-02-18Merge branch 'bjorn/remove-test_server/OTP-12705'Björn Gustavsson
* bjorn/remove-test_server/OTP-12705: Remove test_server as a standalone application Erlang mode for Emacs: Include ct.hrl instead test_server.hrl Remove out-commented references to the test_server applications Makefiles: Remove test_server from include path and code path Eliminate use of test_server.hrl and test_server_line.hrl
2016-02-18Merge branch 'maint'Sverker Eriksson
2016-02-18Merge branch 'sverk/nif-test-cuddle' into maintSverker Eriksson
* sverk/nif-test-cuddle: erts: Fix wobbling test failure in nif_SUITE
2016-02-18Merge branch 'maint'Henrik Nord
2016-02-18Merge branch 'msantos/ms/typo-windows-build-script' into maintHenrik Nord
* msantos/ms/typo-windows-build-script: Fix typo in Windows build scripts OTP-13337
2016-02-17Merge branch 'jv/erts/optimize-cmp'Björn Gustavsson
* jv/erts/optimize-cmp: Unify comparison macros in erl_utils.h Avoid erts_cmp jump in atom, int and float comparisons
2016-02-17Improve cmpxchg8b inline asm configure testRickard Green
2016-02-17Update preloaded modulesHans Bolinder
2016-02-17Makefiles: Remove test_server from include path and code pathBjörn Gustavsson
Since no test suites includede test_server.hrl, there is no need to have test_server in the include path or code path.
2016-02-17Eliminate use of test_server.hrl and test_server_line.hrlBjörn Gustavsson
As a first step to removing the test_server application as as its own separate application, change the inclusion of test_server.hrl to an inclusion of ct.hrl and remove the inclusion of test_server_line.hrl.
2016-02-16Update preloaded erts_internal.beamBjörn-Egil Dahlberg
2016-02-16heart: Remove dead codeBjörn-Egil Dahlberg
2016-02-16erts: Add BIF erts_internal:system_check/1Björn-Egil Dahlberg
This commit implements erts_internal:system_check(schedulers) with the intent of a basic responsiveness test check of the schedulers.
2016-02-15Unify comparison macros in erl_utils.hJosé Valim
This removes the duplication in having both `cmp_eq` and `CMP_EQ` and normalizes their name to uppercase.
2016-02-15Avoid erts_cmp jump in atom, int and float comparisonsJosé Valim
Given the function definition below: check(X) when X >= 0, X <= 20 -> true. @nox has originally noticed that perfoming lt and ge guard tests were performing slower than they should be. Further investigation revealed that most of the cost was in jumping to the erts_cmp function. This patch brings the operations already inlined in erts_cmp into the emulator, removing the jump cost. After applying these changes, invoking the check/1 function defined above 30000 times with different values from 0 to 20 has fallen from 367us to 213us (measured as average of 3 runs). This is a considerably improvement over Erlang 18 which takes 556us on average. Floats have also dropped their time from 1126us (on Erlang 18) to 613us.
2016-02-15Merge branch 'rickard/ds-fixes' into rickard/ds-fixes-masterRickard Green
* rickard/ds-fixes: Fix unique_SUITE for dirty schedulers Add dirty scheduler process termination test Ensure that work is done on the correct type of schedulers Conflicts: erts/emulator/beam/erl_process.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_process_dump.c
2016-02-15Fix unique_SUITE for dirty schedulersRickard Green
2016-02-15Add dirty scheduler process termination testSteve Vinoski
In scheduler_SUITE add a new test that runs a single dirty I/O scheduler and launches a number of dirty I/O NIF calls that each sleep for 3 seconds. Given the single scheduler, the first of these will run while the rest queue up. Then start killing these processes, and verify they call exit correctly.
2016-02-15Ensure that work is done on the correct type of schedulersRickard Green
Only the actual call to the dirty nif is allowed to execute on dirty schedulers. The dirty nif is not allowed to execute on normal schedulers if dirty schedulers are available. Arrival of exit signals and system tasks, while a process was scheduled for execution on a dirty scheduler, could mess up the process internal state. Preparation for dirty system task has been made, but is currently unused.
2016-02-12erts: Fix wobbling test failure in nif_SUITESverker Eriksson
ResA may have been GC'd after its last use.
2016-02-10epmd: support IPv6 node registrationMichael Santos
Allow IPv6 nodes to register with and query epmd. On systems with IPv6 support: * epmd listens on both the IPv4 and IPv6 ANY or loopback sockets * the epmd cli client connects to epmd over the IPv6 loopback * distributed nodes started with "-proto_dist inet6_tcp" will register with epmd over IPv6 To work on IPv6 capable systems that have IPv6 support disabled, epmd ignores errors opening the socket if the protocol is not supported. Similarly, the epmd client will fall back to IPv4 if the IPv6 socket is not available. Update the minimum supported version of Windows to Windows Vista to support IPv6.
2016-02-09hipe_sigaltstack: correct initialization of ss.ss_flagsMikael Pettersson
SS_ONSTACK may be set in oss, but it's not supposed to be set in ss, and some systems correctly reject that; current Linux kernels accept but ignore it in ss
2016-02-08Merge branch 'sverk/thread-unsafe-alloc'Sverker Eriksson
* sverk/thread-unsafe-alloc: erts: Fix faulty assert for non-smp erts: Add checks for thread safe allocation
2016-02-08Merge branch 'sverk/safe-purging/OTP-13122'Sverker Eriksson
* sverk/safe-purging/OTP-13122: erts: Fix harmless dialyzer warnings
2016-02-08Merge branch 'maint'Sverker Eriksson
2016-02-08Merge branch 'sverk/hipe-line-table-bug/master/OTP-13282'Sverker Eriksson
* sverk/hipe-line-table-bug/master/OTP-13282: erts: Fix bug concerning line information for hipe modules
2016-02-08Merge branch 'sverk/hipe-line-table-bug/OTP-13282' into maintSverker Eriksson
* sverk/hipe-line-table-bug/OTP-13282: erts: Fix bug concerning line information for hipe modules
2016-02-08Merge branch 'sverk/proc-exiting-timer-race/OTP-13245' into maintSverker Eriksson
* sverk/proc-exiting-timer-race/OTP-13245: erts: Fix race between receive timeout and exit signal
2016-02-08erts: Fix error cases in enif_get_list_lengthSverker Eriksson
false if improper list false if length > UINT_MAX
2016-02-08erts: Use Sint instead of int for list lengthsRichard Carlsson
This avoids potential integer arithmetic overflow for very large lists.
2016-02-04Fix bug causing run-queue mask to become inconsistentRickard Green
2016-02-04Merge branch 'maint'Zandra
2016-02-04Merge branch 'binarin/epmd-race' into maintZandra
* binarin/epmd-race: Prevent down nodes going undetected in epmd OTP-13301
2016-02-03Merge branch 'kvakvs/erts/list_to_integer/OTP-13293'Lukas Larsson
* kvakvs/erts/list_to_integer/OTP-13293: Better list_to_integer Moved do_list_to_integer from bif.c to big.c
2016-02-03Merge branch 'maint'Lukas Larsson
* maint: erts: When erts_alloc fails, the emulator no longer aborts
2016-02-03Merge branch 'lukas/erts/enomem_no_abort/OTP-13292' into maintLukas Larsson
* lukas/erts/enomem_no_abort/OTP-13292: erts: When erts_alloc fails, the emulator no longer aborts
2016-02-02Merge branch 'lukas/erts/msacc'Lukas Larsson
* lukas/erts/msacc: Update preloaded modules erts: Make msacc alloctor type thread safe Silence compiler erts: Fix msacc testcase on some windowses erts: Add power saving cpu feature tests and use them erts: Refactor perf counter internal interface erts: Add rdtscp instruction check erts: Fix hrtime for windows erts: use correct function for perf counter on non-x86 erts: Fix msacc win32 debug compile error erts: Add microstate accounting erts, kernel: Add os:perf_counter function erts: Add ERTS_WRITE_UNLIKELY
2016-02-02Merge branch 'maint'Rickard Green
* maint: Use nano second time unit in tracing
2016-02-02Merge branch 'rickard/monotonic-time-improvements/OTP-13222' into maintRickard Green
* rickard/monotonic-time-improvements/OTP-13222: Use nano second time unit in tracing
2016-02-02Use nano second time unit in tracingRickard Green
2016-02-02Merge branch 'maint'Zandra
Conflicts: erts/emulator/beam/beam_emu.c