Age | Commit message (Collapse) | Author |
|
* sverk/ets-unfix-delete-race/OTP-12870:
erts: Fix ETS race between object deleter and table unfixer
|
|
* sverk/map-merge-trap:
erts: Expand test map_SUITE:t_bif_merge_and_check
|
|
|
|
* sverk/poll-lost-wakeup/OTP-12859:
erts: Fix race in poller thread wake up
|
|
causing the delete marked object to be left in the table
after safe_fixtable(_,false) has returned.
This is not super serious as the delete marked object
is quite benign and will be deleted at the next unfix operation.
|
|
|
|
|
|
|
|
with merge of randomized maps.
|
|
* vinoski/driver-doc-fix/OTP-12855:
Fix documentation of ERL_DRV_ERROR_ERRNO
|
|
|
|
OTP-12845
* bruce/change-license:
fix errors caused by changed line numbers
Change license text to APLv2
|
|
* sverk/nosmp-init-timer-wheel:
erts: Fix timer wheel initialization bug for non smp
|
|
|
|
Init esdp->timer_wheel as NULL to please setup_aux_work_timer().
|
|
|
|
|
|
* egil/fix-erts_debug-disasm-select_tuple_arity:
erts: Fix erts_debug:df/1 in debug
|
|
* sverk/poll-grow:
erts: Refactor growth of fd tables
|
|
to have one common implementation for both _kp and _nkp.
|
|
* egil/cuddle-tests:
kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1
erts: Tweak statistics_SUITE:scheduler_wall_time/1
|
|
* egil/refactor-close:
erts: Add brackets to statement
|
|
|
|
* egil/change-event-default/OTP-12849:
erts: Do not preallocate too large event pool
|
|
* egil/license-compliance/OTP-12848:
Revert "lcnt: Let runq locks reflect actual call location"
Revert "Demote rare debug slogan of message discarding to debug build"
Revert "Add missing error string to syslog logging in epmd"
Revert "Add run queue index to process dump info"
Revert "Add thread index to allocator enomem dump slogan"
Revert "Add number of entries to mnesia copy debug message"
|
|
* rickard/io-bytes/OTP-12842:
Save IO bytes in scheduler specific data
|
|
* egil/lcnt-refactor/OTP-12846:
erts: Refactor LCNT
|
|
Sentinels in select_tuple_arity instructions are not proper
tuple arities and thus cannot be checked in debug.
Print them as small integers instead.
|
|
* nybek/fix_so_linger_zero__simple:
Update prim_inet.beam
Fix socket option {linger, {true, 0}} to abort TCP connections
Apply 'show_econnreset' socket option to send errors as well
Add 'show_econnreset' TCP socket option
|
|
|
|
This reverts commit efefd4bfda3156c6c19a61d7aa3d2f50a026d0e5.
Conflicts:
erts/emulator/beam/erl_process.h
|
|
This reverts commit 38bd20f4f58e8025bd3ffc718cb7e40a4bde6396.
|
|
This reverts commit e2c11e89563f0c11794c91193b29bce00ca9c740.
|
|
This reverts commit 345af4a0c8d68b9369c3556fa6d911854c123d3f.
|
|
This reverts commit 5d5f9c1857029d7e8e1de141e29d20dd3de929be.
|
|
A pool size of 4000 is too excessive for the common case.
Change ERTS_TS_EV_ALLOC_DEFAULT_POOL_SIZE to 2048
Change ERTS_TS_EV_ALLOC_POOL_SIZE to 32
|
|
|
|
* rickard/glb-inline:
Unbreak global inlining
|
|
* tomas-abrahamsson/patch-1:
Add forgotten argument to example in erl_nif doc
|
|
|
|
* rickard/+zebwt/OTP-12830:
ETS busy wait option
|
|
Conflicts:
erts/emulator/beam/erl_init.c
erts/etc/common/erlexec.c
|
|
* hamt_bin2term:
erts: Add erts_factory_trim_and_close
erts: Optimize driver_deliver_term
erts: Remove hashmap probabilistic heap overestimation
Conflicts:
erts/emulator/beam/beam_load.c
|
|
|
|
Try write directly to process heap (as before)
if the term is guaranteed not to contain any
big maps that may break the initial size estimation.
|
|
* rc/robustify-module_info/OTP-12820:
erts: Add test for module_info on purged modules
erts: Remove ?line macros from module_info_SUITE
Fix segfault in module_info for deleted modules
|
|
by adding a dynamic heap factory.
"binary_to_term" is now a hybrid solution with both
a call to decoded_size() to calculate needed heap space
AND possible dynamic allocation of more heap space
if needed for big maps.
The heap size returned from decoded_size() is guaranteed
to be sufficient for all term heap data except for hashmap
nodes. All hashmap nodes are created at the end of dec_term()
by invoking the heap factory interface that may allocate more
heap space on process heap or in fragments.
With this commit it is no longer guaranteed that a message
is confined to only one heap fragment.
|
|
* sverk/map-merge-trap:
erts: Optimize maps:merge
erts: Yield in maps:merge
erts: Refactor arg swapping for maps:merge
erts: Add save/restore for PSTACK
erts: Fix magic binary alignment on 32-bit
erts: Add maps to send_term_SUITE
erts: Fix calculation of reclaimed data during full gc
erts: Fix warning about const pointer to make_boxed and make_list
erts: Fix typo in etp-carrier-blocks
|
|
to be better at reusing entire hashmap sub-trees.
Sub-tree reuse is detected in three cases:
1. The sub-tree top node does not exist at all in the other map.
Already implemented before this commit.
2. The exact same sub-tree exist in both maps.
Must calculate nr of keys in tree to get total size right.
3. We detect that a sub-tree only contains stuff from one of the maps.
There is still one case we don't detect. If A and B leafs have equal
keys we could also compare the values. If values are equal, further
node reuse could propagate up toward the root (by 'mix'==0).
The downside would be potentially expensive value comparisons.
|
|
|