aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2019-07-02erts: Improve hash shrinkingSverker Eriksson
* Release is_resizing as soon as possible to improve shrink concurrency. - Do join of buckets after release, but with kept WLOCK_HASH. - Do deallocations of seg and segtab after release of both is_resizing and WLOCK_HASH. * Do lazy initialization of buckets in extended segments. - Mark inactive buckets in DEBUG.
2019-07-02Merge branch 'poroh/erts/sched-stuck-fix/OTP-15941' into maint-22Erlang/OTP
* poroh/erts/sched-stuck-fix/OTP-15941: Infinite cycle fixed on try to change run queue (if it has already changed concurrently)
2019-07-02Merge branch 'sverker/system_info-procs-bug/ERL-979/OTP-15909' into maint-22Erlang/OTP
* sverker/system_info-procs-bug/ERL-979/OTP-15909: Fix fatal bug in erts_proc_sig_signal_size
2019-07-02Merge branch 'john/erts/lists_subtract_fixes/OTP-15938/OTP-15939' into maint-22Erlang/OTP
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01Merge branch 'sverker/re-enable-big-creation/OTP-15603'Sverker Eriksson
* sverker/re-enable-big-creation/OTP-15603: doc: Add links between dist flags and external tags (DTD updated) erts: Fix docs for new pid,port,ref external tags erts: Document new EPMD response ALIVE2_X_RESP erl_interface: Support 32-bit creation local cnode jinterface: Remove old encoding of pid,port,refs epmd: Support 32-bit creation values in local node erl_interface: Remove old encoding of pid,port,refs erts: Remove old encoding of pids, ports and refs erts: Make DFLAG_BIG_CREATION mandatory
2019-07-01Merge branch 'maint'Sverker Eriksson
2019-07-01Merge PR-2313 from poroh/poroh/erts/sched-stuck-fix OTP-15941Sverker Eriksson
Infinite cycle fixed on try to change run queue (if it has already ch…
2019-07-01Merge branch 'maint'John Högberg
* maint: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01Merge branch 'john/erts/lists_subtract_fixes/OTP-15938/OTP-15939' into maintJohn Högberg
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939: erts: Fix integer overflow in loader erts: Fix integer overflow in list subtraction
2019-07-01erts: Fix integer overflow in loaderJohn Högberg
qsort expects the comparison function to return an int; returning an `Sint` may yield nonsensical results.
2019-07-01erts: Fix integer overflow in list subtractionJohn Högberg
CMP_TERM returned an `Sint`, which overflowed the `int` used in erl_rbtree for storing the comparison, causing list subtraction to behave strangely.
2019-06-28Infinite cycle fixed on try to change run queue (if it has already changed ↵Dmitry Poroh
concurrently)
2019-06-28Merge branch 'maint'Lukas Larsson
2019-06-27erts: Fix gc disable when terminating processLukas Larsson
2019-06-27erts: Cleanup start of all erts threads to ABORT when failingLukas Larsson
Before this change erts used to crash dump and then abort, but a crash dump is not really usefull at this point and it caused all sort of lock problems when crash dumping that early in the system boot, so now it is changed to only dump core instead. Also in the process I cleaned up some the code so that it does not to a lot of things that are not needed.
2019-06-27Merge branch 'maint'Lukas Larsson
2019-06-27Merge branch 'lukas/erts/dist-optimize-large-data/PR-2291/OTP-15926' into maintLukas Larsson
* lukas/erts/dist-optimize-large-data/PR-2291/OTP-15926: erts: Don't copy binary data from dist data erts: Move copy of payload to receiving process
2019-06-26erts: Suppress valgrind warning in offset_heap_ptrSverker Eriksson
when called by offset_nstack() for hipe native stack.
2019-06-25Merge branch 'maint'Rickard Green
* maint: Update runtime dependency from stdlib to erts Yield when validating UTF8 for long subject in re:run() Add yield_on_subject_validation() test Update runtime dependency from stdlib to erts Only validate subject once when global is used in re:run() Add global_unicode_validation() test
2019-06-25Merge pull request #2250 from ↵Rickard Green
rickard-green/rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 re unicode validation
2019-06-24Merge branch 'maint'Sverker Eriksson
2019-06-24Merge branch 'sverker/system_info-procs-bug/ERL-979/OTP-15909' into maintSverker Eriksson
* sverker/system_info-procs-bug/ERL-979/OTP-15909: Fix fatal bug in erts_proc_sig_signal_size
2019-06-24Merge branch 'maint'Björn Gustavsson
* maint: Handle addition of bignum + variable in unoptimized code
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-19Fix fatal bug in erts_proc_sig_signal_sizeSverker Eriksson
called by erlang:process_info(memory) erlang:system_info(procs) crash dump break menu Will crash VM if process has a pending monitor DOWN signal in its queue.
2019-06-19erts: Don't copy binary data from dist dataLukas Larsson
It is already a refc, so no need to create a new one.
2019-06-19erts: Move copy of payload to receiving processLukas Larsson
2019-06-19Merge pull request #2110 from NattyNarwhal/aix-fixes/OTP-15866Lukas Larsson
Wake AIX up from coma
2019-06-18Merge branch 'rickard/re-yield-unicode-validation/OTP-15836/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-yield-unicode-validation/OTP-15836/ERL-876: Update runtime dependency from stdlib to erts Yield when validating UTF8 for long subject in re:run() Add yield_on_subject_validation() test
2019-06-18Yield when validating UTF8 for long subject in re:run()Rickard Green
2019-06-18Merge branch 'rickard/re-global-unicode-validation/OTP-15831/ERL-876' into ↵Rickard Green
rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876 * rickard/re-global-unicode-validation/OTP-15831/ERL-876: Update runtime dependency from stdlib to erts Only validate subject once when global is used in re:run() Add global_unicode_validation() test
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 branch 'maint'Lukas Larsson
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-17Merge branch 'rickard/dist-exit2/22/OTP-15867' into maint-22Erlang/OTP
* rickard/dist-exit2/22/OTP-15867: Don't disconnect on remote exit/2 with old incarnation as recipient
2019-06-17Merge branch 'john/erts/fix-xxx_to_existing_atom-overflow/ERL-944/OTP-15819' ↵Erlang/OTP
into maint-22 * john/erts/fix-xxx_to_existing_atom-overflow/ERL-944/OTP-15819: erts: Fix buffer overflow in xxx_to_existing_atom
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 '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-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.