Age | Commit message (Collapse) | Author |
|
|
|
* sverker/ets-delete-tree-trapping:
erts: Refactor ets catree deletion
|
|
* john/erts/process_info-binary-heap-fragments/OTP-15978:
erts: Scan heap fragments for off-heap binaries
|
|
to maintain consistency of the trees during yielding
and by that avoid problems with test inspection like
erts_debug:get_internal_state(node_and_dist_references).
|
|
* john/erts/fix-instrument-allocations-race/OTP-15983:
erts: Fix crash in instrument:allocations/0-1
|
|
* john/erts/bs_get_binary2-heap-binaries/OTP-15977:
erts: Create heap binaries in binary:split/2-3
erts: Create heap binaries in binary_part/2-3
erts: Create heap binaries in split_binary/2
erts: Create heap binaries in bs_get_binary2
erts: Remove size check in bs_start_match
erts: Disallow binaries whose size in bits exceeds UWORD_MAX
|
|
The current carrier list was read when the allocator wasn't locked,
crashing the emulator if a block scan raced with a carrier
allocation.
|
|
|
|
|
|
|
|
|
|
ErlSubBin is a large struct that often dwarfs the region of memory
it points at, and it's common for them to refer to a ProcBin which
must be kept around as long as the SubBin lives, using up even more
heap space and keeping the referenced binary alive regardless of
how small the sub-binary is.
|
|
The size check is redundant now that all binaries are guaranteed
to be small enough that their size in bits fits into a word.
|
|
These have never worked in binary matching (including sub-binaries
extracted from them) so it's hard to justify their existence. They
also make a future migration of binary sizes from bytes to bits
problematic, so we may as well change it ahead of time.
This is potentially incompatible on 32-bit platforms where a NIF
or driver could allocate 512MB+ binaries, but allocations that
large should be expected to fail anyway.
|
|
|
|
* rickard/node-refc-tests-22:
Fix etp-ets-tables
Fix node refc test for free processes hanging around
Enhanced node refc bookkeeping
Fix node container refc tests of ETS
Fix node refc test of external data
Node container refc test for persistent terms
Include persistent term storage in node/dist refc check
Fix node refc test for system message queue
|
|
|
|
|
|
|
|
|
|
* rickard/node-refc-tests-21:
Node container refc test for persistent terms
Include persistent term storage in node/dist refc check
Fix node refc test for system message queue
|
|
|
|
* rickard/node-refc-tests-20:
Fix node refc test for system message queue
|
|
|
|
* sverker/valgrind-hipe-suppression:
erts: Suppress valgrind warning in offset_heap_ptr
|
|
* poroh/erts/sched-stuck-fix/OTP-15941:
Infinite cycle fixed on try to change run queue (if it has already changed concurrently)
|
|
* sverker/system_info-procs-bug/ERL-979/OTP-15909:
Fix fatal bug in erts_proc_sig_signal_size
|
|
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939:
erts: Fix integer overflow in loader
erts: Fix integer overflow in list subtraction
|
|
Infinite cycle fixed on try to change run queue (if it has already ch…
|
|
* john/erts/lists_subtract_fixes/OTP-15938/OTP-15939:
erts: Fix integer overflow in loader
erts: Fix integer overflow in list subtraction
|
|
qsort expects the comparison function to return an int; returning
an `Sint` may yield nonsensical results.
|
|
CMP_TERM returned an `Sint`, which overflowed the `int` used in
erl_rbtree for storing the comparison, causing list subtraction to
behave strangely.
|
|
concurrently)
|
|
|
|
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.
|
|
* 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
|
|
when called by offset_nstack() for hipe native stack.
|
|
rickard-green/rickard/re-unicode-validation/OTP-15831/OTP-15836/ERL-876
re unicode validation
|
|
* sverker/system_info-procs-bug/ERL-979/OTP-15909:
Fix fatal bug in erts_proc_sig_signal_size
|
|
* bjorn/erts/unoptimized-plus:
Handle addition of bignum + variable in unoptimized code
|
|
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.
|
|
It is already a refc, so no need to create a new one.
|
|
|
|
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
|
|
|
|
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
|
|
* kjell/stdlib/ets_ordered_set_slow_react/OTP-15906:
ETS ordered_set: Improvements to the CA tree implementation
|
|
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.
|
|
Return real pend value in erlang:dist_get_stat/1
|
|
* rickard/dist-exit2/22/OTP-15867:
Don't disconnect on remote exit/2 with old incarnation as recipient
|