Age | Commit message (Collapse) | Author |
|
|
|
|
|
* maint:
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
|
|
* bjorn/erts/measure-process_main/OTP-15620:
Add benchmark
Add erts_debug:interpreter_size/0
|
|
|
|
* sverker/node-table-cmp-0-creation-fix:
erts: Revert creation 0 as wildcard in node_table_cmp
|
|
* 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"
|
|
|
|
|
|
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.
|
|
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
|
|
erts: Optimize arithmetic ops using overflow intrinsics
|
|
* 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
|
|
This reverts commit 321dc6ee0241f802c940def174c0a77262e11f21.
|
|
This reverts commit 0b74eec2a1fd5716ba6e21d8c6715433d8d34510.
|
|
This reverts commit bd8f6106d44a58c261920eef72842bb3bc5a4968.
PLUS a little change in epmd_srv.c:750 ("4" -> "replylen")
that was part of e2cf4a8a4b03b9f430ba228276c3b2629159e832
by mistake.
|
|
This reverts commit aef76b8e8bdce86e46e2267331b1b957f796653f.
|
|
The wrong allocator type was given to erts_free.
|
|
We don't check for io errors as the pollset will be unstable.
|
|
Complementory fix to 922fd355831575965
|
|
The edep->data values need to be 64-bit aligned as it
contains 64-bit values.
|
|
|
|
|
|
|
|
Cannot do unaligned word writes on sparc!
|
|
|
|
|
|
Incorrect precidence rules made the driver never
deselect the given fds.
|
|
* bjorn/erts/cuddle-with-tests:
statistics_SUITE: Make wall_clock_update/1 more tolerant
|
|
Add erts_debug:interpreter_size/0 for retrieving the approximate
size of the BEAM interpreter (process_main()).
|
|
|
|
__declspec(noinline) works fine on MSVC but requires us to place
the macro before a function rather than after, which in turn causes
early versions of GCC to puke since they only accept __attribute__
at the end of a function declaration.
Since this is a new macro that previously only saw use in beam_emu,
I figured it's easiest to leave it disabled on MSVC.
|
|
Measurements show that i_minus instructions (subtraction) are
frequent enough to warrant creating specialized i_minus instructions.
Thanks to José Valim for doing instruction counting on
Elixir code.
|
|
OTP-15715
* lukas/erl_docgen/add-internal-docs:
cerl_clauses: Fix broken link
Fix minor typos
Add CountingInstructions to the internal documentation
GarbageCollection.md: Fix links to references
emd2exml: Remove paragraphs around image tags
emd2exml: Clean emphasis markers in link texts
emd2exml: Allow short names of anchors for internal links
Include figures
erts: Fix more internal docs xmllint
compiler: Add internal docs section
erl_docgen: Add new internal docs chapter to docs
|
|
* bjorn/doc/fix-broken-links:
Fix broken links
|
|
PR 2194, stdlib: fix re:replace on LTO builds
* trofi/master:
cleanup: beam_emu.c: use ERTS_NOINLINE instead of NOINLINE
stdlib: fix re:replace on LTO builds
|
|
A multitude of broken links were found when a bug was fixed
in the link checker.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AGAIN
* sverker/enable-big-creation/OTP-15603:
erts: Document new EPMD response ALIVE2_X_RESP
erl_interface: Support 32-bit creation local cnode
jinterface: Remove old encoding of pid,port,refs
|
|
* john/erts/cuddle-efile-suite:
efile_SUITE: Fix proc_zero_sized_files on systems with empty /proc
|
|
* maint:
Updated OTP version
Prepare release
# Conflicts:
# OTP_VERSION
# make/otp_version_tickets_in_merge
|
|
This test would fail on some versions of FreeBSD because /proc was
present but empty.
This commit makes the test fail if and only if a known zero-sized
file is found and turns out to be empty empty.
|
|
* john/kernel/cuddle-file-suite:
file_name_SUITE: Darwin 18 broke support for 'icky' names
file_SUITE: Ignore EILSEQ on Darwin in +fnu/latin1 test
|