aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
AgeCommit message (Collapse)Author
2016-11-22Silence debug warning when no beam jump table is used with dirty schedulersRickard Green
2016-11-22Fix check_process_code() when NifExport is in useRickard Green
2016-11-22Fix GC when NifExport is in useRickard Green
2016-11-22Fix saving of original arguments when rescheduling via NifExportRickard Green
2016-09-15Merge branch 'bjorn/erts/on_load/ERL-240/OTP-13893' into maintBjörn Gustavsson
* bjorn/erts/on_load/ERL-240/OTP-13893: erts: Add nif_SUITE:t_on_load erts: Improve nif_SUITE:upgrade test Don't leak old code when loading a modules with an on_load function
2016-09-14Merge branch 'maint-19' into maintHenrik Nord
2016-09-14Ensure we dont use an invalid live heap fragment pointerRickard Green
2016-09-14Update vheap size when moving msgq to heap after GCRickard Green
2016-09-14Don't leak old code when loading a modules with an on_load functionBjörn Gustavsson
Normally, calling code:delete/1 before re-loading the code for a module is unnecessary but causes no problem. But there will be be problems if the new code has an on_load function. Code with an on_load function will always be loaded as old code to allowed it to be easily purged if the on_load function would fail. If the on_load function succeeds, the old and current code will be swapped. So in the scenario where code:delete/1 has been called explicitly, there is old code but no current code. Loading code with an on_load function will cause the reference to the old code to be overwritten. That will at best cause a memory leak, and at worst an emulator crash (especially if NIFs are involved). To avoid that situation, we will put the code with the on_load function in a special, third slot in Module. ERL-240
2016-09-14Merge branch 'maint-19' into maintHenrik Nord
2016-09-13Fix crash due to heap fragments left after GCRickard Green
Do not decode distribution messages as part of the GC operation. Distribution messages containing maps may generate heap fragments.
2016-09-09Fix restore of 'current' field when rescheduled NIF completesRickard Green
2016-09-06Merge branch 'sverker/beam-too-few-functions/ERL-244/OTP-13848' into maintSverker Eriksson
* sverker/beam-too-few-functions/ERL-244: erts: Reject beam file with too few functions
2016-09-06Merge branch 'rickard/thr-prgr-unmanaged-delay-bug/OTP-13869' into maintRickard Green
* rickard/thr-prgr-unmanaged-delay-bug/OTP-13869: Fix erts_thr_progress_unmanaged_delay()
2016-09-06Merge branch 'rickard/drv-send-term-thr-bug/OTP-13866' into maintRickard Green
* rickard/drv-send-term-thr-bug/OTP-13866: Fix thread calls to erl_drv_send_term()/erl_drv_output_term() Conflicts: erts/emulator/beam/io.c
2016-09-05Fix erts_thr_progress_unmanaged_delay()Rickard Green
Thread progress leader update did not cache current unmanaged index when waiting for unmanaged threads. This caused erts_thr_progress_unmanaged_delay() to stop working until a new leader took over.
2016-09-05Merge branch 'lukas/erts/tracing/fix_sparc_align_issue/OTP-13803' into maintLukas Larsson
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803: erts: Immed tracer states also have to be alignable
2016-09-05Fix thread calls to erl_drv_send_term()/erl_drv_output_term()Rickard Green
2016-09-05erts: Reject beam file with too few functionsSverker Eriksson
2016-09-02Introduce literal sweep of native stack in new purge strategyRickard Green
2016-09-01Merge branch 'rickard/new-purge-strategy/OTP-13833' into maintRickard Green
* rickard/new-purge-strategy/OTP-13833: Fix reclaim of literal areas Conflicts: erts/emulator/beam/beam_bif_load.c
2016-09-01Fix reclaim of literal areasRickard Green
2016-08-31Merge branch 'rickard/mbuf_sz/OTP-13851' into maintRickard Green
* rickard/mbuf_sz/OTP-13851: Ensure correct mbuf_sz value in process structure
2016-08-30Fix is-dirty-cpu/is-dirty-io scheduler predicatesRickard Green
2016-08-30Ensure correct mbuf_sz value in process structureRickard Green
2016-08-30Merge branch 'rickard/time-unit/OTP-13735' into maintRickard Green
* rickard/time-unit/OTP-13735: Update test-cases to use new symbolic time units Replace misspelled symbolic time units Conflicts: erts/doc/src/erlang.xml erts/emulator/test/long_timers_test.erl
2016-08-30Merge branch 'rickard/ds-win-32bit/OTP-13759' into maintRickard Green
* rickard/ds-win-32bit/OTP-13759: Fix dirty schedulers build on windows
2016-08-30Merge branch 'sverker/load-corrupt-beam/ERL-216/OTP-13848' into maintSverker Eriksson
* sverker/load-corrupt-beam/ERL-216: erts:: Unsignify a bunch of loader variables erts: Reject an invalid beam code header size erts: Fix load of beam with invalid imports and atom numbers
2016-08-29Merge branch 'rickard/ds-trace/OTP-13822' into maintRickard Green
* rickard/ds-trace/OTP-13822: Fix tracing of processes executing dirty
2016-08-29Merge branch 'rickard/ds-purge-module/OTP-13808' into maintRickard Green
* rickard/ds-purge-module/OTP-13808: Perform check_process_code while process is executing dirty Conflicts: erts/doc/src/erl_nif.xml
2016-08-29Merge branch 'rickard/fun-purge-bug/OTP-13809' and ↵Rickard Green
'rickard/new-purge-strategy/OTP-13833' into maint * rickard/fun-purge-bug/OTP-13809: Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/doc/src/erlang.xml erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_init.c erts/preloaded/ebin/init.beam
2016-08-29Fix tracing of processes executing dirtyRickard Green
2016-08-29Perform check_process_code while process is executing dirtyRickard Green
2016-08-29Fix purge of codeRickard Green
Ensure that we cannot get any dangling pointers into code that has been purged. This is done by a two phase purge. At first phase all fun entries pointing into the code to purge are marked for purge. All processes trying to call these funs will be suspended and by this we avoid getting new direct references into the code. When all processes has been checked, these processes are resumed. The new purge strategy now also completely ignore the existence of indirect references to the code (funs). If such exist, they will cause bad fun exceptions to the caller, but will not prevent a soft purge or cause a kill of a process having such live references during a hard purge. This since it is impossible to give any guarantees that no processes in the system have such indirect references. Even when the system is completely clean from such references, new ones can appear via distribution and/or disk.
2016-08-26Reclaim literal area after purge has completedRickard Green
2016-08-25Replace misspelled symbolic time unitsRickard Green
Besides using two words for 'milliseconds' et. al. they are also changed from plural to singular.
2016-08-24erts: Immed tracer states also have to be alignableLukas Larsson
2016-08-23erts:: Unsignify a bunch of loader variablesSverker Eriksson
2016-08-23erts: Reject an invalid beam code header sizeSverker Eriksson
2016-08-23erts: Fix load of beam with invalid imports and atom numbersSverker Eriksson
2016-08-22Merge branch 'lukas/erts/port_monitor_mem_leak/OTP-13818' into maintLukas Larsson
* lukas/erts/port_monitor_mem_leak/OTP-13818: erts: Fix port monitor memory leak
2016-08-19Merge branch 'sverker/net_kernel-setopts/OTP-13564' into maintSverker Eriksson
2016-08-12erts: Fix port monitor memory leakLukas Larsson
2016-08-12Merge branch 'maint-19' into maintRickard Green
* maint-19: Updated OTP version Prepare release Avoid segfault when printing slogan after crashdumping Fix race causing lost wakeup on receive-after timeout
2016-08-12Merge branch 'lukas/erts/tracing/fix_sparc_align_issue/OTP-13803' into maintLukas Larsson
* lukas/erts/tracing/fix_sparc_align_issue/OTP-13803: erts: Align ErtsThrPrgrLaterOp when free'ing tracer
2016-08-12erts: Align ErtsThrPrgrLaterOp when free'ing tracerLukas Larsson
On Sparc all structs with a double word element in are assumed to be allocated on a two word boundary. So we have to make sure that the ErtsThrPrgrLaterOp * points to 8 / 16 byte aligned memory. As it only costs one word I've done it on all architectures in case some unknown other arch also needs this.
2016-08-11Merge branch 'rickard/erl-crash-dump-bug/OTP-13799' into maint-19Erlang/OTP
* rickard/erl-crash-dump-bug/OTP-13799: Avoid segfault when printing slogan after crashdumping
2016-08-11Merge branch 'rickard/proc-tmo-bug/OTP-13798' into maint-19Erlang/OTP
* rickard/proc-tmo-bug/OTP-13798: Fix race causing lost wakeup on receive-after timeout
2016-08-11Avoid segfault when printing slogan after crashdumpingRickard Green
2016-08-11Fix race causing lost wakeup on receive-after timeoutRickard Green