aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2019-04-17[socket] Make use of the new select (read|write) functionsMicael Karlberg
Make use of the new select functions; enif_select_[read|write], for read and write select. These functions allows us to construct the select message ourseves: {'$socket', Socket, select, Ref} This is in preparations for when we introduce the 'nowait' (or something similar) value for the timeout argument (in accept, read and write funcions). It also solves (we hope) the term leakage problems (it was difficult to free the environment when there was only one/socket). OTP-15496
2019-04-17[socket|net] Make set|get options safe and type prefixMicael Karlberg
Firstly, make sure socket (and own) options manipulations are safe by adding a mutex that we take in the setopt and getopt functions. Secondly, change type prefix of various types from 'Socket' to 'ESock' (for instance; SocketDescriptor -> ESockDescriptor). OTP-15496
2019-04-17[socket] Restructure the close function(s)Micael Karlberg
To increase readability the close function has been slightly restructured.
2019-04-17[socket] Restructure the recvmsg result checkMicael Karlberg
To increase readability the recvmsg result check has been slightly restructured. In this case we made use of the error case function (fail) of the recv result check.
2019-04-17[socket] Restructure the recvfrom result checkMicael Karlberg
To increase readability the recvfrom result check has been slightly restructured. In this case we made use pf the error case function (fail) of the recv result check.
2019-04-17[socket] Restructure the recv result checkMicael Karlberg
To increase readability the recv result check has been slightly restructured.
2019-04-17[socket] Restructure the send result checkMicael Karlberg
To increase readability the send result check has been slightly restructured.
2019-04-17[socket] Messages from the nif code now has a proper socketMicael Karlberg
The messages sent from the nif code to an erlang process has been changed to: {'$socket', Socket :: socket(), Tag :: atom(), Info :: term()} This is in preparation for (using) the new enif select API. OTP-15496
2019-04-17[esock] Fixed socket close raceMicael Karlberg
Used ref from wrong environment when building reply.
2019-04-17Merge branch 'maint'Micael Karlberg
* maint: Updated OTP version Prepare release
2019-04-17Merge branch 'maint-20' into maintMicael Karlberg
* maint-20: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # erts/doc/src/notes.xml # erts/vsn.mk # lib/common_test/doc/src/notes.xml # lib/common_test/vsn.mk # lib/erl_interface/doc/src/notes.xml # lib/erl_interface/vsn.mk # lib/snmp/doc/src/notes.xml # lib/snmp/vsn.mk # lib/ssh/doc/src/notes.xml # lib/ssh/vsn.mk # lib/tools/doc/src/notes.xml # lib/tools/vsn.mk # make/otp_version_tickets # otp_versions.table
2019-04-16Prepare releaseErlang/OTP
2019-04-16Merge branch 'rickard/make-fixes-20/OTP-15657' into maint-20Erlang/OTP
* rickard/make-fixes-20/OTP-15657: Remove own configured RM make variable
2019-04-16Merge branch 'rickard/make-fixes-20/OTP-15551' into maint-20Erlang/OTP
* rickard/make-fixes-20/OTP-15551: Fix install phase in build system
2019-04-16Merge branch 'sverker/doc-big-creation-tags/OTP-15766' into maint-20Erlang/OTP
* sverker/doc-big-creation-tags/OTP-15766: erts: Document NEW_PID, NEW_PORT, NEWER_REFERENCE erts: Add missing docs for DFLAG_MAP_TAG and DFLAG_BIG_CREATION
2019-04-16Merge branch ↵Erlang/OTP
'max-au/erts/maint-20/dirty_scheduler_shutdown/PR-2172/OTP-15690' into maint-20 * max-au/erts/maint-20/dirty_scheduler_shutdown/PR-2172/OTP-15690: erts: Use smp prefix on runq erts: release dirty runqueue lock before entering endless loop when BEAM is shutting down
2019-04-16Merge branch 'sverker/ets-no-mbuf-trapping/OTP-15660' into maint-20Erlang/OTP
* sverker/ets-no-mbuf-trapping/OTP-15660: erts: Remove ets traversal yielding if heap fragment
2019-04-15Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: crash dump: Fix printing of "OldBinVHeap unused" crash dump: Include correct IP for a garbing process fun_SUITE: Make refc/1 test more reliable Remove redundant rule from Emakefile Turn off more optimizations for no_opt modules test_server_node: Bump compiler compatibility version to OTP 20 erts_test_utils: Bump compiler compatibility version to OTP 20 distribution_SUITE: Remove irrelevant test atom_roundtrip_r16b bs_construct_SUITE: Rename bs_add_overflow/1 to bs_append_overflow/1 bs_construct_SUITE: Remove troublesome test huge_binary/1 bs_construct_SUITE: Remove incorrect purpose line
2019-04-15Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-04-15Prepare releaseErlang/OTP
2019-04-15Merge branch 'sverker/maint-21/doc-big-creation-tags/OTP-15766' into maint-21Erlang/OTP
* sverker/maint-21/doc-big-creation-tags/OTP-15766: erts: Document NEW_PID, NEW_PORT, NEWER_REFERENCE erts: Add missing docs for DFLAG_MAP_TAG and DFLAG_BIG_CREATION
2019-04-12Merge branch 'sverker/doc-big-creation-tags/OTP-15766'Sverker Eriksson
into sverker/maint-21/doc-big-creation-tags/OTP-15766
2019-04-12Merge 'maint' into 'master'Sverker Eriksson
2019-04-12Merge 'sverker/doc-big-creation-tags/OTP-15766' into 'maint'Sverker Eriksson
2019-04-12crash dump: Fix printing of "OldBinVHeap unused"Björn Gustavsson
During a garbage collection, there could have been an overflow in the old virtual heap.
2019-04-12crash dump: Include correct IP for a garbing processBjörn Gustavsson
Make sure that the instruction pointer is correct for a garbing process in a crash dump.
2019-04-12fun_SUITE: Make refc/1 test more reliableBjörn Gustavsson
Wait a little after to make sure that fun holding process to complete its termination.
2019-04-12Remove redundant rule from EmakefileBjörn Gustavsson
According to the comment, this rule was only needed when communication with R7B nodes was supported.
2019-04-12Turn off more optimizations for no_opt modulesBjörn Gustavsson
With the new compiler in OTP 22, we have to use more options to turn off optimizations. This commit also skips the match_huge_int/1 test case in the unoptimized clone of the bs_match_int module because it could crash on memory-constrained computers.
2019-04-12Merge branch 'maint'Hans Nilsson
* maint: Updated OTP version Prepare release # Conflicts: # OTP_VERSION # make/otp_version_tickets_in_merge
2019-04-12Prepare releaseErlang/OTP
2019-04-12Merge branch 'bjorn/erts/measure-process_main/OTP-15620'Björn Gustavsson
* bjorn/erts/measure-process_main/OTP-15620: Add benchmark Add erts_debug:interpreter_size/0
2019-04-11erts: Document NEW_PID, NEW_PORT, NEWER_REFERENCESverker Eriksson
2019-04-11Merge branch 'sverker/node-table-cmp-0-creation-fix'Sverker Eriksson
* sverker/node-table-cmp-0-creation-fix: erts: Revert creation 0 as wildcard in node_table_cmp
2019-04-11Merge branch 'sverker/revert-big-creation'Sverker Eriksson
* sverker/revert-big-creation: Revert "erts: Make DFLAG_BIG_CREATION mandatory" Revert "erts: Remove old encoding of pids, ports and refs" Revert "erl_interface: Remove old encoding of pid,port,refs" Revert "epmd: Support 32-bit creation values in local node" Revert "jinterface: Remove old encoding of pid,port,refs" Revert "erl_interface: Support 32-bit creation local cnode" Revert "erts: Document new EPMD response ALIVE2_X_RESP"
2019-04-11erts_test_utils: Bump compiler compatibility version to OTP 20Björn Gustavsson
2019-04-11distribution_SUITE: Remove irrelevant test atom_roundtrip_r16bBjörn Gustavsson
Communication with OTP R16b has not been supported for a while.
2019-04-11bs_construct_SUITE: Rename bs_add_overflow/1 to bs_append_overflow/1Björn Gustavsson
The test case tests that the bs_append instruction tests for overflow. Make that clear by renaming the test case. While at it, also add a few explicit garbage_collection/0 calls to make it more likeley to run successfully in tight memory situations.
2019-04-11bs_construct_SUITE: Remove troublesome test huge_binary/1Björn Gustavsson
This test case can fail for the wrong reason (swapping followed by a timetrap timeout). It is unlikely to fail because of a real bug.
2019-04-11bs_construct_SUITE: Remove incorrect purpose lineBjörn Gustavsson
2019-04-11Add benchmarkBjörn Gustavsson
2019-04-10erts: Add missing docs for DFLAG_MAP_TAG and DFLAG_BIG_CREATIONSverker Eriksson
2019-04-10erts: Revert creation 0 as wildcard in node_table_cmpSverker Eriksson
This is a partial revert of bf7c722bd3b30e04a56c2d369fd9f5501a8316d0. It does not make sense to treat 0 as a wild card in cmp function for the hash table as creation is part of the hash calculation.
2019-04-10Decentralized counters for ETS ordered_set with write_concurrencyKjell Winblad
Previously, all ETS tables used centralized counter variables to keep track of the number of items stored and the amount of memory consumed. These counters can cause scalability problems (especially on big NUMA systems). This commit adds an implementation of a decentralized counter and modifies the implementation of ETS so that ETS tables of type ordered_set with write_concurrency enabled use the decentralized counter. [Experiments][1] indicate that this change substantially improves the scalability of ETS ordered_set tables with write_concurrency enabled in scenarios with frequent `ets:insert/2` and `ets:delete/2` calls. The new counter is implemented in the module erts_flxctr (`erts_flxctr.h` and `erts_flxctr.c`). The module has the suffix flxctr as it contains the implementation of a flexible counter (i.e., counter instances can be configured to be either centralized or decentralized). Counters that are configured to be centralized are implemented with a single counter variable which is modified with atomic operations. Decentralized counters are spread over several cache lines (how many can be configured with the parameter `+dcg`). The scheduler threads are mapped to cache lines so that there is no single point of contention when decentralized counters are updated. The thread progress functionality of the Erlang VM is utilized to implement support for linearizable snapshots of decentralized counters. The snapshot functionality is used by the `ets:info/1` and `ets:info/2` functions. [1]: http://winsh.me/ets_catree_benchmark/flxctr_res.html
2019-04-10Merge pull request #2204 from jhogberg/john/erts/optimize-arith-ops/OTP-15740John Högberg
erts: Optimize arithmetic ops using overflow intrinsics
2019-04-10Merge branch 'john/merge-re-replace-fix'John Högberg
* john/merge-re-replace-fix: erts: Skip ERTS_NOINLINE on non-GCC-compatible compilers cleanup: beam_emu.c: use ERTS_NOINLINE instead of NOINLINE stdlib: fix re:replace on LTO builds
2019-04-09Revert "erts: Make DFLAG_BIG_CREATION mandatory"Sverker Eriksson
This reverts commit 321dc6ee0241f802c940def174c0a77262e11f21.
2019-04-09Revert "erts: Remove old encoding of pids, ports and refs"Sverker Eriksson
This reverts commit 0b74eec2a1fd5716ba6e21d8c6715433d8d34510.
2019-04-09Revert "epmd: Support 32-bit creation values in local node"Sverker Eriksson
This reverts commit bd8f6106d44a58c261920eef72842bb3bc5a4968. PLUS a little change in epmd_srv.c:750 ("4" -> "replylen") that was part of e2cf4a8a4b03b9f430ba228276c3b2629159e832 by mistake.
2019-04-09Revert "erts: Document new EPMD response ALIVE2_X_RESP"Sverker Eriksson
This reverts commit aef76b8e8bdce86e46e2267331b1b957f796653f.