aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2016-07-22Merge branch 'maint'Björn-Egil Dahlberg
2016-07-21erts: Update maps entropy testsBjörn-Egil Dahlberg
2016-07-21erts: Fix internal hashing entropy for mapsBjörn-Egil Dahlberg
We need to use an initial hash seed for each map pair, i.e. the hash value. The hash value is reset to the seed for each pair instead of setting the seed to zero. If we don't, no additional entropy is given to the system and the hash collision resolution in maps:from_list/1 would fail.
2016-07-21erts: Fix whitespacesBjörn-Egil Dahlberg
2016-07-15Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: OTP_VERSION
2016-07-15Merge branch 'maint-19' into maintBjörn-Egil Dahlberg
2016-07-14Merge branch 'maint'Lukas Larsson
2016-07-14erts: Cleanup a bunch of un-neccesary #ifndefsLukas Larsson
2016-07-14erts: Fix some msacc inline directivesLukas Larsson
2016-07-14erts: Add extra bif msacc statesLukas Larsson
2016-07-14erts: Add erts_map_from_ks_and_vsLukas Larsson
2016-07-14erts: Fix msacc for dirty scheduler and heap_limitLukas Larsson
2016-07-14Merge branch 'maint'Lukas Larsson
Conflicts: erts/emulator/Makefile.in
2016-07-14hipe: Remove performance profiling codeLukas Larsson
This type of statistics is now available through the microstate accounting API.
2016-07-14Merge branch 'maint'Lukas Larsson
2016-07-14Merge branch 'sverker/update_counter-deadlock/ERL-188/OTP-13731' into maint-19Erlang/OTP
* sverker/update_counter-deadlock/ERL-188/OTP-13731: erts: Add test ets_SUITE:update_counter_table_growth erts: Fix deadlock in ets:update_counter/4 erts: Optimize db_finalize_dbterm_hash
2016-07-13erts: Make sure to de-allocate the old seq tracerLukas Larsson
2016-07-11Merge branch 'maint'Lukas Larsson
* maint: erts: After a call to a tracer nif, reset htop erts: Check if return_to trace is enabled for bif
2016-07-11Merge branch 'lukas/erts/tracing/bif_return_to_trace_fix/OTP-13734' into maintLukas Larsson
* lukas/erts/tracing/bif_return_to_trace_fix/OTP-13734: erts: After a call to a tracer nif, reset htop erts: Check if return_to trace is enabled for bif
2016-07-11erts: After a call to a tracer nif, reset htopLukas Larsson
This is needed in order for the heap to never contain any pointers to invalid memory. This is good for performance and debugging reasons.
2016-07-11Merge branch 'maint'Lukas Larsson
2016-07-11Merge branch 'lukas/erts/spawn_driver_relative_cd/ERL-175/OTP-13733' into maintLukas Larsson
* lukas/erts/spawn_driver_relative_cd/ERL-175/OTP-13733: erts: Add port_SUITE:cd invalid dir testcase erts: Fix spawn driver with relative cd option erts: Fix HARD_DEBUG printouts in erl_child_setup erts: Improve error printouts in erl_child_setup Conflicts: erts/emulator/test/port_SUITE.erl
2016-07-11erts: Fix deadlock in ets:update_counter/4Sverker Eriksson
in 'set' with 'write_concurrency' when inserting default object causes table to grow and the bucket to split is protected by same lock as the key.
2016-07-11erts: Optimize db_finalize_dbterm_hashSverker Eriksson
Always free term after WUNLOCK_HASH
2016-07-08erts: Fix GC overrun bug in 'bsl' op with small Op1Sverker Eriksson
Symptom: VM abort "Overrun stack and heap" Problem: The temporary bignum created in buffer tmp_big[] will be part of the GC initiated by TestHeapPreserve, but its size is not included which can cause the GC to overflow if very unlucky. Solution: Do not include tmp_big in the GC.
2016-07-08erts: Check if return_to trace is enabled for bifLukas Larsson
We have to do an extra check if the return_to trace is enabled here as it may have been cleared by the bif after the flags where created by the call_trace.
2016-07-07Merge branch 'maint'Sverker Eriksson
2016-07-07Merge branch 'sverker/child-setup-debugging' into maintSverker Eriksson
2016-07-07Merge branch 'maint'Sverker Eriksson
2016-07-07Merge branch 'sverker/spawn-driver-env-test' into maintSverker Eriksson
2016-07-05Merge branch 'sverker/gcbif-trace-wrapper'Sverker Eriksson
2016-07-05Merge branch 'maint'Sverker Eriksson
2016-07-05Merge branch 'hipe-trap-gc/PR-1116/OTP-13724' into maintSverker Eriksson
* hipe-trap-gc/PR-1116: hipe: Fix bug in trap frame allocation wrappers hipe: Add assertion for gc in bif without wrapper
2016-07-05erts: Add port_SUITE:cd invalid dir testcaseLukas Larsson
2016-07-01erts: Fix gcbif trace wrappersSverker Eriksson
Broken on master by f0f4e72c8ec5c08993ff.
2016-07-01erts: Fix spawn driver with relative cd optionLukas Larsson
2016-07-01erts: Fix HARD_DEBUG printouts in erl_child_setupLukas Larsson
2016-07-01erts: Improve error printouts in erl_child_setupLukas Larsson
Add prints to stderr with a small description of the error so that errors will be easier to debug. Also if a protocol error is detected, erl_child_setup will abort instead of exit.
2016-06-30hipe: Fix bug in trap frame allocation wrappersMagnus Lång
The trap frame allocation wrappers occasionally call the garbage collector, even though built-in functions are not supposed to. On non-{x86,amd64} platforms, HiPE was optimising the BIF wrapper interface on the basis that BIFs do not GC. So, when hipe_reserve_beam_trap_frame called the garbage collector, the state in the PCB was stale and corruption happened. Now, these particular BIFs are reclassified as GC BIFs. Unfortunately, in order to do that we needed to introduce a gc_bif_interface_3 macro in every hipe_$ARCH_bifs.m4 file.
2016-06-30Merge branch 'maint'Hans Nilsson
Conflicts: OTP_VERSION
2016-06-30hipe: Add assertion for gc in bif without wrapperMagnus Lång
An easy source of tricky bugs is to start calling the garbage collector from a built-in function without adding that bif to hipe_bif_list.m4. With this change we, in the debug build, keep track of whether the canonical stack and heap pointers are stored in the PCB or in registers/stack, allowing us to catch this class of mistakes with an assertion.
2016-06-29Fix group_leader/2Rickard Green
2016-06-29Merge branch 'bjorn/gc-bifs'Björn Gustavsson
* bjorn/gc-bifs: compiler: Eliminate num_bif_SUITE erl_internal: Eliminate duplication of guard tests beam_debug: Improve the disassembly of gc_bif instructions Simplify creation of new GC BIFs make_tables: Remove broken automatic BIF aliasing
2016-06-29Merge branch 'bjorn/erts/use-const'Björn Gustavsson
* bjorn/erts/use-const: beam_makeops: Save some memory by making loader tables 'const' beam_makeops: Separate static information from counters make_preload: Save some memory by making preloaded code 'const'
2016-06-28erts: Save abort reason for erl_child_setupSverker Eriksson
Nice to have for core dump inspection when stderr -> /dev/null.
2016-06-22beam_debug: Improve the disassembly of gc_bif instructionsBjörn Gustavsson
Using the translation table in erts_gc_bifs[], we can now print out the name of GC BIFs, instead of just the pointer value.
2016-06-22Simplify creation of new GC BIFsBjörn Gustavsson
Add the BIF type "gcbif" in bif.tab for defining GC BIFs. That will eliminate some of the hand-written administrative code for handling GC BIFs, saving the developer's time.
2016-06-22beam_makeops: Save some memory by making loader tables 'const'Björn Gustavsson
Before: $ size bin/x86_64-unknown-linux-gnu/beam.smp text data bss dec hex filename 3080982 188369 158472 3427823 344def bin/x86_64-unknown-linux-gnu/beam.smp After: $ size bin/x86_64-unknown-linux-gnu/beam.smp text data bss dec hex filename 3164694 104657 158472 3427823 344def bin/x86_64-unknown-linux-gnu/beam.smp
2016-06-22beam_makeops: Separate static information from countersBjörn Gustavsson
The counters are only used in the special 'icount' emulator. We will save some memory by including the counters in the OpEntry. It will also make it possible to make opc 'const'.
2016-06-22make_tables: Remove broken automatic BIF aliasingBjörn Gustavsson
The make_tables script still contains a broken implementation of a mechanism to automatically give a BIF an additional (for example, was used for erlang:'++'/2 and erlang:append/2). When that featured broke, it was worked around by adding additional entries to bif.tab. There is therefore no reason to mend the feature.