aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2015-08-10Merge branch 'sverk/smp-trace-port-exit-bug/OTP-12901' into maintLukas Larsson
* sverk/smp-trace-port-exit-bug/OTP-12901: Teach smp VM how to deal with crash of a linked trace port
2015-08-10Teach smp VM how to deal with crash of a linked trace portSverker Eriksson
Problem: The sys-msg-dispather crashes the VM when trying to send exit signals from the links of the terminating trace port. If try-lock of the linked process fails, a pending exit is scheduled and erts_scheduler_data() is then called to find "my" run queue. But sys-msg-dispatcher is not a scheduler and has no scheduler data, hence SEGV. Fix: If not a scheduler and we cannot get process locks, schedule process in its previous run-queue.
2015-08-05Merge branch 'bjorn/erts/beam_debug' into maintBjörn Gustavsson
* bjorn/erts/beam_debug: Fix crash when disassembling modules with BIFs
2015-07-08Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Prepare release Fix calculation of end time Prefer monotonic time that stop during suspend Avoid unnecessary copying of data when retrieving corrected monotonic time Add the --enable-gettimeofday-as-os-system-time configure switch
2015-07-08Merge branch 'rickard/end-time-fix/OTP-12896' into maint-18Erlang/OTP
* rickard/end-time-fix/OTP-12896: Fix calculation of end time
2015-07-08Merge branch 'rickard/read_corrected_time/OTP-12894' into maint-18Erlang/OTP
* rickard/read_corrected_time/OTP-12894: Avoid unnecessary copying of data when retrieving corrected monotonic time
2015-07-08Merge branch 'rickard/non-smp-trace-port-exit-bug/OTP-12889' into maint-18Erlang/OTP
* rickard/non-smp-trace-port-exit-bug/OTP-12889: Teach non-smp VM how to deal with trace port crash Test case testing crash in tracer port
2015-07-08Fix calculation of end timeRickard Green
2015-07-08Avoid unnecessary copying of data when retrieving corrected monotonic timeRickard Green
2015-07-08Fix crash when disassembling modules with BIFsBjörn Gustavsson
In a debug-compiled emulator, running erts_debug:df(io) would trigger an assertion failure: 1> erts_debug:df(io). beam/beam_debug.c:301:erts_debug_disassemble_1() Assertion failed: (((funcinfo[0]) & 0x3F) == ((0x0 << 4) | ((0x2 << 2) | 0x3))) Aborted (core dumped) It turns out that the assertion is wrong. It should have been updated in 64ccd8c9b7a7 which made it possible to have stubs for BIFs in the BEAM code for a module. The faulty assertion was only found when when 16317f73f79265 added a smoke test of the BEAM disassembler.
2015-07-07Merge branch 'maint-17' into maintZandra Hird
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk lib/runtime_tools/doc/src/notes.xml lib/runtime_tools/vsn.mk otp_versions.table
2015-07-06Merge branch 'rickard/non-smp-trace-port-exit-bug/OTP-12889' into maint-17Erlang/OTP
* rickard/non-smp-trace-port-exit-bug/OTP-12889: Teach non-smp VM how to deal with trace port crash Test case testing crash in tracer port
2015-07-06Teach non-smp VM how to deal with trace port crashRickard Green
2015-07-02Correct disassembly of the i_get_map_elements instructionBjörn Gustavsson
The emulator would crash.
2015-06-26erts: Fix ETS race between object deleter and table unfixerSverker Eriksson
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.
2015-06-22Fix node/dist refc countRickard Green
2015-06-22Merge branch 'bruce/change-license'Bruce Yinhe
OTP-12845 * bruce/change-license: fix errors caused by changed line numbers Change license text to APLv2
2015-06-18erts: Fix timer wheel initialization bug for non smpSverker Eriksson
Init esdp->timer_wheel as NULL to please setup_aux_work_timer().
2015-06-18Change license text to APLv2Bruce Yinhe
2015-06-17Merge branch 'egil/fix-erts_debug-disasm-select_tuple_arity'Björn-Egil Dahlberg
* egil/fix-erts_debug-disasm-select_tuple_arity: erts: Fix erts_debug:df/1 in debug
2015-06-17Merge branch 'egil/license-compliance/OTP-12848'Björn-Egil Dahlberg
* 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"
2015-06-17Merge branch 'rickard/io-bytes/OTP-12842'Rickard Green
* rickard/io-bytes/OTP-12842: Save IO bytes in scheduler specific data
2015-06-17Merge branch 'egil/lcnt-refactor/OTP-12846'Björn-Egil Dahlberg
* egil/lcnt-refactor/OTP-12846: erts: Refactor LCNT
2015-06-17erts: Fix erts_debug:df/1 in debugBjörn-Egil Dahlberg
Sentinels in select_tuple_arity instructions are not proper tuple arities and thus cannot be checked in debug. Print them as small integers instead.
2015-06-17Save IO bytes in scheduler specific dataRickard Green
2015-06-16Revert "lcnt: Let runq locks reflect actual call location"Björn-Egil Dahlberg
This reverts commit efefd4bfda3156c6c19a61d7aa3d2f50a026d0e5. Conflicts: erts/emulator/beam/erl_process.h
2015-06-16Revert "Demote rare debug slogan of message discarding to debug build"Björn-Egil Dahlberg
This reverts commit 38bd20f4f58e8025bd3ffc718cb7e40a4bde6396.
2015-06-16Revert "Add run queue index to process dump info"Björn-Egil Dahlberg
This reverts commit 345af4a0c8d68b9369c3556fa6d911854c123d3f.
2015-06-16Revert "Add thread index to allocator enomem dump slogan"Björn-Egil Dahlberg
This reverts commit 5d5f9c1857029d7e8e1de141e29d20dd3de929be.
2015-06-16erts: Refactor LCNTBjörn-Egil Dahlberg
2015-06-15Unbreak global inliningRickard Green
2015-06-15Merge branch 'rickard/+zebwt/OTP-12830'Rickard Green
* rickard/+zebwt/OTP-12830: ETS busy wait option
2015-06-15ETS busy wait optionRickard Green
Conflicts: erts/emulator/beam/erl_init.c erts/etc/common/erlexec.c
2015-06-15Merge branch 'hamt_bin2term'Sverker Eriksson
* 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
2015-06-15erts: Add erts_factory_trim_and_closeSverker Eriksson
2015-06-15erts: Optimize driver_deliver_termSverker Eriksson
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.
2015-06-15Merge branch 'rc/robustify-module_info/OTP-12820'Björn-Egil Dahlberg
* 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
2015-06-15erts: Remove hashmap probabilistic heap overestimationSverker Eriksson
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.
2015-06-15Merge branch 'sverk/map-merge-trap'Sverker Eriksson
* 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
2015-06-15erts: Optimize maps:mergeSverker Eriksson
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.
2015-06-15erts: Yield in maps:mergeSverker Eriksson
2015-06-10Merge branch 'rickard/delayed-delete-node/OTP-12802'Rickard Green
* rickard/delayed-delete-node/OTP-12802: Fix error checking for +zdntgc flag
2015-06-10Fix error checking for +zdntgc flagRickard Green
2015-06-10Merge branch 'rickard/delayed-delete-node/OTP-12802'Rickard Green
* rickard/delayed-delete-node/OTP-12802: Delayed node table GC
2015-06-10Merge branch 'rickard/node-table-read-lock/OTP-12777'Rickard Green
* rickard/node-table-read-lock/OTP-12777: Only read lock node table when reading info
2015-06-10Merge branch 'rickard/timer-improvement/OTP-12650'Rickard Green
* rickard/timer-improvement/OTP-12650: Callback timer Disable accessor timer option Aux work flag descriptions Fix test cases
2015-06-10Merge branch 'rickard/lost-multi-aux-work/OTP-12812'Rickard Green
* rickard/lost-multi-aux-work/OTP-12812: Fix lost aux work flags when setting multiple flags
2015-06-10Delayed node table GCRickard Green
2015-06-10Merge branch 'egil/fix-purge-literals/OTP-12821'Björn-Egil Dahlberg
* egil/fix-purge-literals/OTP-12821: erts: Fix garbage collect literals in code purge
2015-06-10Fix segfault in module_info for deleted modulesRichard Carlsson
Add a check to protect from segfault when erlang:get_module_info/1/2 is called on a deleted module (i.e. with no current code). Also refactor erts_module_info_0/1 to avoid repeated calls to erts_active_code_ix() and remove some obsolete comments. Add test for module_info on deleted modules.