aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2019-06-24Merge branch 'bjorn/erts/unoptimized-plus' into maintBjörn Gustavsson
* bjorn/erts/unoptimized-plus: Handle addition of bignum + variable in unoptimized code
2019-06-19Merge branch 'sverker/hipe-x86-flush-icache' into maintSverker Eriksson
2019-06-19erts: Call __builtin___clear_cache for hipe x86 codeSverker Eriksson
Seems the right thing to do as the compiled code is not necessarily executed by a single CPU thread. Only warning if old gcc and will work as good/bad as it did before.
2019-06-19Merge branch 'sverker/fix-hipe-arm-old-gcc-error' into maintSverker Eriksson
2019-06-18Merge branch 'kjell/stdlib/ets_ordered_set_slow_react/OTP-15906' into maintKjell Winblad
* kjell/stdlib/ets_ordered_set_slow_react/OTP-15906: ETS ordered_set: Improvements to the CA tree implementation
2019-06-18ETS 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-18Merge pull request #2270 from essen/dist-get-stat-real-pend-value/OTP-15905Lukas Larsson
Return real pend value in erlang:dist_get_stat/1
2019-06-18Merge pull request #2272 from ↵Lukas Larsson
garazdawi/lukas/erts/fix_active_n_close_win32/ERL-960/OTP-15901 Fix {active,N} close race condition on windows
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 '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 '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-16Document extra message element also where trace message format is describedPéter Gömöri
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 'bmk/erts/esock/20190529/expose_select_to_the_caller/OTP-15731' ↵Micael Karlberg
into maint
2019-06-13erts: Fix benign preprocessor error from "make depend"Sverker Eriksson
on non-Linux with gcc < 4.3 hipe/hipe_arm.c:65: #error "Don't know how to flush instruction cache" This is benign because "make depend" runs preprocessor on more files than actually needed.
2019-06-13erts: Relax the constraint introduced in OTP-15871John Högberg
2019-06-12Handle addition of bignum + variable in unoptimized codeBjörn Gustavsson
Also handles code compiled by OTP 21 and earlier.
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-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 '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 ↵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 '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-04erts: Fix {active,N} close race condition on windowsLukas Larsson
When a close is detected on windows, we need to keep track of it as it will not trigger again.
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-06-03Return real pend value in erlang:dist_get_stat/1Loïc Hoguin
Only the dist_util code is using this function and it already is compatible with a non-boolean value.
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.
2019-05-29[esock|test] Add multi async accept TCP test caseMicael Karlberg
Add accept test case testing the abort message received when "another" process closes a socket. Multiple accept(ors) for good measure.
2019-05-29[esock|test] Add multi async recvmsg UDP test caseMicael Karlberg
Add recvmsg test case testing the abort message received when "another" process closes a socket. Multiple readers for good measure.
2019-05-29[esock|test] Add multi async recvfrom UDP test caseMicael Karlberg
Add recvfrom test case testing the abort message received when "another" process closes a socket. Multiple readers for good measure.
2019-05-29Merge branch 'sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849' into maintSverker Eriksson
* sverker/seq-trace-label-old-heap-bug/ERL-700/OTP-15849: erts: Fix faulty spec for seq_trace:set_token/2 erts: Fix seq_trace:print/2 for arbitrary labels erts: Fix bug in seq_trace:set_token(label,_)