aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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-10Merge branch 'kjell/stdlib/ets_decentralized_counters/PR-2190/OTP-15623'Kjell Winblad
* kjell/stdlib/ets_decentralized_counters/PR-2190/OTP-15623: Decentralized counters for ETS ordered_set with write_concurrency
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 #2205 from bjorng/bjorn/record_info/ERL-907Björn Gustavsson
Issue an error for improper use of record_info/2 in a fun OTP-15760
2019-04-10compiler: Add missing header dependenciesJohn Högberg
2019-04-10Merge branch 'hasse/parsetools/fix_leex_test'Hans Bolinder
* hasse/parsetools/fix_leex_test: parsetools: Remove no longer working tests
2019-04-10ssl: Add chacha ciphers to openssl_suite_name/1Péter Dimitrov
Change-Id: I2f2cc8c64f02b50773eb455770336b159da7b9f9
2019-04-10ssl: Filter signature_schemes before usagePéter Dimitrov
Filter unassigned and legacy elements from signature_scheme_list before further processing. Change-Id: I0a2623e53c21cebe6e736e7eee6bb6354fc698b7
2019-04-10ssl: Handle legacy algorithms in signature_scheme/1Péter Dimitrov
Handle legacy signature algorithms in TLS 1.3 ClientHello to improve debug logging. Change-Id: If5548c828aabab83a2b147dffa7e937bd98916c6
2019-04-10Merge branch 'hans/crypto/ifdef_no_alg/OTP-15683'Hans Nilsson
* hans/crypto/ifdef_no_alg/OTP-15683: crypto: Obey compile flags for no DSA, BF, DES, DH
2019-04-10crypto: Obey compile flags for no DSA, BF, DES, DHHans Nilsson
2019-04-10Merge branch 'hans/crypto/valgrind/OTP-15644'Hans Nilsson
* hans/crypto/valgrind/OTP-15644: crypto: Remove compiler warning on an fprintf in the otp test engine crypto: Fix valgrind error in api_ng.c ng_crypto_one_time for OpenSSL<1.0.1
2019-04-10crypto: Remove compiler warning on an fprintf in the otp test engineHans Nilsson
The otp_test_engine is only used in some of the test cases.
2019-04-10crypto: Fix valgrind error in api_ng.c ng_crypto_one_time for OpenSSL<1.0.1Hans Nilsson
2019-04-10Merge branch 'bmk/snmp/compiler/20190328/otp_mibs_cleanup'Micael Karlberg
2019-04-10Merge branch 'maint'Lukas Larsson
2019-04-10Merge branch 'lukas/erl_interface/depend-fix/OTP-15757' into maintLukas Larsson
* lukas/erl_interface/depend-fix/OTP-15757: erl_interface: Generate dependencies at compile time
2019-04-10erl_interface: Generate dependencies at compile timeLukas Larsson
2019-04-10Merge branch 'hasse/dialyzer/improve_binary_printing/OTP-15752'Hans Bolinder
* hasse/dialyzer/improve_binary_printing/OTP-15752: dialyzer: Fix pretty printing of binaries
2019-04-10hipe: Remove mention of `no_bsm3` flagJohn Högberg
This was only intended to be documented during OTP 22's testing phase and we're nearing its release now. In addition to that it wasn't a complete fix as modules compiled with HiPE+no_bsm3 tended to crash the emulator at runtime.
2019-04-10Merge pull request #2197 from lbolla/spelling-mistakes-fixBjörn Gustavsson
Fix various spelling mistakes
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 "erl_interface: Remove old encoding of pid,port,refs"Sverker Eriksson
This reverts commit 78ea501bcc84bd8bd49da97e514c1c3b20682d86.
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 "jinterface: Remove old encoding of pid,port,refs"Sverker Eriksson
This reverts commit 3c7a387c21d7b0d054c22509828142a80e509317.
2019-04-09Revert "erl_interface: Support 32-bit creation local cnode"Sverker Eriksson
This reverts commit 6454221ad87d1cd8fc877b424db3c4a8e9835577.
2019-04-09Revert "erts: Document new EPMD response ALIVE2_X_RESP"Sverker Eriksson
This reverts commit aef76b8e8bdce86e46e2267331b1b957f796653f.
2019-04-09ssl: Fix ssl:getstat/2Péter Dimitrov
Change-Id: I03d8bb7b45fc48b3d5b0232c4c3a286fb36aad5c
2019-04-09ssl: Implement {active,N} for DTLSPéter Dimitrov
Change-Id: I559624bedf3b9b9ed0316af5262f59bcad8de926
2019-04-09ssl: Fix function merge_fragments/2Péter Dimitrov
Change-Id: Icc99d5f3b8c667107926603e9d546d7198bd098d
2019-04-09ssl: Remove excessive calls to next_record/1Péter Dimitrov
Change-Id: Ic6606206b9c48489ead46bf2f8a982cf06ccc2e3
2019-04-09Merge branch 'peterdmv/ssl/fix-chacha-ciphers'Péter Dimitrov
* peterdmv/ssl/fix-chacha-ciphers: ssl: Fix Chacha20 IV length and nonce calculation Change-Id: I69b88bcfe0e9a6b9157884e9df049e15f4a35b95
2019-04-09Merge branch ↵Lukas Larsson
'lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613/OTP-15703' * lukas/erts/fragment-dist-messages/OTP-13397/OTP-15610/OTP-15611/OTP-15612/OTP-15613/OTP-15703: erts: Fix dist sequence yield state allocator type erts: Fix driver_SUITE:use_fallback_pollset erts: Yield when exiting/free process is suspended by de erts: Fix alignment of ErtsDistExternal on sparc erts: Fix incorrect gcc may be used init warning erts: Skip large dist testcases on machines with little memory erts: Fix lock order violation in system_info(procs) erts: Fix buffer alignment bug in alloc_dist_obuf erts: Fix build of dist_ctrl_get_data return term
2019-04-09erts: Fix dist sequence yield state allocator typeLukas Larsson
The wrong allocator type was given to erts_free.
2019-04-09erts: Fix driver_SUITE:use_fallback_pollsetLukas Larsson
We don't check for io errors as the pollset will be unstable.
2019-04-09erts: Yield when exiting/free process is suspended by deLukas Larsson
Complementory fix to 922fd355831575965
2019-04-09erts: Fix alignment of ErtsDistExternal on sparcLukas Larsson
The edep->data values need to be 64-bit aligned as it contains 64-bit values.
2019-04-09erts: Fix incorrect gcc may be used init warningLukas Larsson
2019-04-09erts: Skip large dist testcases on machines with little memoryLukas Larsson
2019-04-09erts: Fix lock order violation in system_info(procs)Lukas Larsson
2019-04-09erts: Fix buffer alignment bug in alloc_dist_obufLukas Larsson
Cannot do unaligned word writes on sparc!
2019-04-09erts: Fix build of dist_ctrl_get_data return termLukas Larsson
2019-04-09Merge branch 'maint'Lukas Larsson
2019-04-09Merge branch 'lukas/erts/fix-fd-driver-select/OTP-15753' into maintLukas Larsson
* lukas/erts/fix-fd-driver-select/OTP-15753: erts: Fix sys_driver to correctly deselect fds
2019-04-09erts: Fix sys_driver to correctly deselect fdsLukas Larsson
Incorrect precidence rules made the driver never deselect the given fds.
2019-04-09Merge branch 'hasse/stdlib/erl_pp_throw/OTP-15751'Hans Bolinder
* hasse/stdlib/erl_pp_throw/OTP-15751: stdlib: Fix a bug concerning exception class 'throw'
2019-04-09Issue an error for improper use of record_info/2 in a funBjörn Gustavsson
`record_info/2` is a pseudo-function that requires literal arguments known at compile time. Therefore, the following usage is illegal: f() -> fun record_info/2. However, `erl_lint` did not issue a compilation error for this usage, and the compiler would crash in a later pass. https://bugs.erlang.org/browse/ERL-907