aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2019-06-17Merge branch 'maint'John Högberg
* maint: erts: Relax the constraint introduced in OTP-15871
2019-06-17Merge branch 'john/erts/fix-conservative/OTP-15881' into maintJohn Högberg
* john/erts/fix-conservative/OTP-15881: erts: Relax the constraint introduced in OTP-15871
2019-06-17Merge branch 'maint'Rickard Green
* maint: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'rickard/dist-exit2/22/OTP-15867' into maintRickard Green
* rickard/dist-exit2/22/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'bjorn/better-fun-info/OTP-15837'Björn Gustavsson
* bjorn/better-fun-info/OTP-15837: Create a shared wrapper function for all occurrences of 'fun F/A' Support sharing of fun entries in the runtime system erl_fun.c: Remove unused struct definition hipe: Use the new index when translating funs Stop supporting decoding of old funs in the external term format genop.tab: Insert an "OTP 23" comment for clarity
2019-06-17Merge branch 'maint'Ingela Anderton Andin
2019-06-17Merge branch 'ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747' into ↵Ingela Anderton Andin
ingela/merge-294 * ingela/raimo/udp-send-TOS/ERIERL-294/OTP-15747: Introduce udp send ancillary data argument down to inet_drv Fix old warnings
2019-06-17Merge branch 'rickard/dist-exit2/21/OTP-15867' into ↵Rickard Green
rickard/dist-exit2/22/OTP-15867 * rickard/dist-exit2/21/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'rickard/dist-exit2/20/OTP-15867' into ↵Rickard Green
rickard/dist-exit2/21/OTP-15867 * rickard/dist-exit2/20/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Don't disconnect on remote exit/2 with old incarnation as recipientRickard Green
2019-06-17Introduce udp send ancillary data argument down to inet_drvRaimo Niskanen
2019-06-17Merge branch 'maint'Lukas Larsson
2019-06-16Document extra message element also where trace message format is describedPéter Gömöri
2019-06-14Support sharing of fun entries in the runtime systemBjörn Gustavsson
Before OTP 23, there had to be a one-to-one correspodence between `make_fun2` instructions and fun entries. In the OTP 23 runtime system, start keying the fun entries with the explicit ("new") index included in the fun entry. That will allow multiple `make_fun2` instructions to refer to the same entry in the fun table. This change is safe for code compiled by OTP R15B or later, because the old and new indices are identical. The loader will refuse to load code where the old and new indices are not equal unless the code is known to be compiled with an OTP 23 compiler.
2019-06-14erl_fun.c: Remove unused struct definitionBjörn Gustavsson
2019-06-14Stop supporting decoding of old funs in the external term formatBjörn Gustavsson
The new external format for funs (NEW_FUN_EXT) was introduced in OTP R8 along with the `make_fun2` instruction. Therefore, it should be safe to stop decoding the old FUN_EXT tag.
2019-06-14Merge branch 'maint'Micael Karlberg
2019-06-14Merge branch 'bmk/erts/esock/20190528/pattern' into maintMicael Karlberg
2019-06-14[esock|test] Ensure only "real" IPv6 address'es are acceptedMicael Karlberg
When geting the local address, make sure we don't accept the loopback address.
2019-06-14Merge branch 'maint'Micael Karlberg
2019-06-14Merge branch 'bmk/erts/esock/20190529/expose_select_to_the_caller/OTP-15731' ↵Micael Karlberg
into maint
2019-06-13erts: Relax the constraint introduced in OTP-15871John Högberg
2019-06-12Merge branch 'maint'Raimo Niskanen
2019-06-12Merge branch 'raimo/incomplete-socket-close/ERIERL-353/OTP-15370' into maintRaimo Niskanen
* raimo/incomplete-socket-close/ERIERL-353/OTP-15370: Copy linger zero flag from listen socket Test linger zero flag from listen socket
2019-06-12Merge branch ↵Erlang/OTP
'sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865' into maint-22 * sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865: erts: Improve test of process_info(reductions) Revert "erts: Force process_info(reductions) as signal"
2019-06-12Merge branch 'sverker/erts/break-p-segv/ERL-965/OTP-15873' into maint-22Erlang/OTP
* sverker/erts/break-p-segv/ERL-965/OTP-15873: erts: Fix SEGV crash on shell break (p)roc info
2019-06-11ETS ordered_set: Improvements to the CA tree implementationKjell Winblad
This commit only affects the implementation of ETS `ordered_set` tables with the `write_concurrency` option enabled. Such tables are implemented with a data structure that is called the contention adapting search tree (CA tree). This commit introduces the following changes: * This commit causes a join to be triggered in one randomly selected base node in about one of 1000 read unlock calls for base node locks. No such joins happened before this commit. Before this commit, operations that only acquired looks in read-mode never triggered any contention adaptation. Therefore, the CA tree could get stuck in a sub-optimal state in certain scenarios. This could happen, for example, when a CA tree is first populated with parallel inserts (which will cause splits of base nodes) and then only read-only operations are applied to the data structure. Benchmark results from the `ets_SUITE:lookup_catree_par_vs_seq_init_benchmark/0` benchmark function (which is included in this commit) shows that this change can improve the throughput of the CA tree in the scenario described above. * Read-only operations will now also increase values of statistics counters when they detect that they need to wait for other operations. Only write operation changed statistics counters before this commit. This improves the statistics that the adaptation heuristics is based on. * Additionally, this commit adds an upper and lower limit to the contention statistics variables in the base nodes. Such limits did not exist before this commit. This should, for example, make the CA tree more responsive to contention after long periods of low contention.
2019-06-11Merge branch 'maint'John Högberg
* maint: erts: Fix bad loader optimization of get_tuple_element beam_ssa_type: Fix incorrect bitstring unit determination
2019-06-11Merge branch 'john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374' ↵John Högberg
into maint * john/erts/fix-bad-get_tuple_element-opt/OTP-15871/ERIERL-374: erts: Fix bad loader optimization of get_tuple_element
2019-06-10Merge branch 'maint'Sverker Eriksson
2019-06-10Merge branch 'sverker/erts/hipe-arm-freebsd-clear-cache/ERL-958' into maintSverker Eriksson
OTP-15874 PR-2266 * sverker/erts/hipe-arm-freebsd-clear-cache/ERL-958: erts: Fix hipe_flush_icache_range for FreeBSD on ARM
2019-06-10erts: Fix hipe_flush_icache_range for FreeBSD on ARMSverker Eriksson
Avoid old Linux specific syscall assembler if we can.
2019-06-10Merge branch 'maint'Sverker Eriksson
2019-06-10Merge branch ↵Sverker Eriksson
'sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865' into maint * sverker/erts/process-info-reductions-idle-proc/ERL-964/OTP-15865: erts: Improve test of process_info(reductions) Revert "erts: Force process_info(reductions) as signal"
2019-06-10erts: Improve test of process_info(reductions)Sverker Eriksson
to provoke case when the main lock is released during execution.
2019-06-10Merge branch 'maint'Sverker Eriksson
2019-06-10Merge branch 'sverker/erts/break-p-segv/ERL-965/OTP-15873' into maintSverker Eriksson
* sverker/erts/break-p-segv/ERL-965/OTP-15873: erts: Fix SEGV crash on shell break (p)roc info
2019-06-10erts: Fix bad loader optimization of get_tuple_elementJohn Högberg
The following sequence would be wrongly optimized into a i_get_tuple_element2 instruction, reading an element from the wrong tuple: {get_tuple_element,{x,0},1,{x,0}}. {get_tuple_element,{x,0},2,{x,1}}.
2019-06-04erts: Fix SEGV crash on shell break (p)roc infoSverker Eriksson
esdp==NULL if run by non scheduler thread.
2019-06-04Revert "erts: Force process_info(reductions) as signal"Sverker Eriksson
This reverts commit 70dbf671a8196110d2aee2e7507afc2c2c75183f. As the comment of 70dbf671a8 itself indicates, that "fix" is not really necessary. It has, however, the bad effect of always consuming reductions of the process you want to know reduction from, that is you can't meassure reduction count without affecting it.
2019-06-04[esock] Add pattern to socket descriptorMicael Karlberg
Add a pattern field to the (beginning of the) socket descriptor. To make it more easy to spot memory over-writes. One pattern for create and one for dtor. Also reset various fields of the descriptor at dtor.
2019-06-04[esock] Post rebase cleanupMicael Karlberg
Rebase (on maint as of 20190529) resulted in a number of issues. Mostly in the (esock) test suite. OTP-15731
2019-05-29[esock|test] Fixed a ttest scriptMicael Karlberg
The script used the wrong variable for active (async).
2019-05-29[esock] Found and fixed some weirdness on darwinMicael Karlberg
Tests on Darwin Kernel Version 18.2.0 reveled some problems handling connect (on that platform). It seems that calling connect the second time is not needed (it results in eisconn), so we needed to handle that case, which we now do.
2019-05-29[esock] Types and cleanupMicael Karlberg
Changed tag type tpo opaque. Also added connect (monitor and process) cleanup. OTP-15731
2019-05-29[esock] Connect can now also take a nowait TimeoutMicael Karlberg
Had forgot about the connect function. But it can now also handle the Timeout = nowait, maybe resulting in a select. Required some nif work also... OTP-15731
2019-05-29[esock|test] Attempt to create a ttest reportMicael Karlberg
Attempted to implement a common report function for the time test (ttest). Not complete.
2019-05-29[esock|test] Fixed async ttestMicael Karlberg
Updated the ttest test(s) to handle async properly. OTP-15731
2019-05-29[esock] Changed return value for a selected async callMicael Karlberg
The return value for an async call (Timeout = nowait) will now (normally) result in a {select, SelectInfo} instead (if a select was performed). OTP-15731
2019-05-29[esock|test] Add multi async recv and recvmsg TCP test case(s)Micael Karlberg
Add recv and recvmsg test case testing the abort message received when "another" process closes a socket. Multiple readers for good measure.