aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator
AgeCommit message (Collapse)Author
2016-08-31Avoid selective receive in code-purger processRickard Green
The code purger process handles vast amounts of messages when there are lots of processes alive. A single message in the message queue that does not match will in such cases cause lots of extra work. The code purger process now always picks the first message in the message queue, and by this avoid this extra work.
2016-08-31Remove old purge strategyRickard Green
2016-08-29Merge branch 'maint'Rickard Green
* maint: Fix tracing of processes executing dirty Perform check_process_code while process is executing dirty Fix purge of code Reclaim literal area after purge has completed Separate literal area from code Conflicts: erts/emulator/beam/global.h
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-26Merge branch 'g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842'Lukas Larsson
* g-andrade/kernel/fetch_ztream_dictionary/PR-1139/OTP-13842: Update preloaded modules Specify min zlib ver on inflateGetDictionary doc Skip inflateGetDictionary test case if unsupported zlib: Only link inflateGetDictionary if available zlib: Add test case for inflateGetDictionary zlib: support extraction of inflation dictionary
2016-08-26Reclaim literal area after purge has completedRickard Green
2016-08-22Merge branch 'maint'Lukas Larsson
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-22zlib: Only link inflateGetDictionary if availableGuilherme Andrade
Which at the moment means zlib versions >= 1.2.8.
2016-08-19Merge branch 'maint'Sverker Eriksson
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'Rickard Green
* maint: Updated OTP version Prepare release Avoid segfault when printing slogan after crashdumping Fix race causing lost wakeup on receive-after timeout Conflicts: OTP_VERSION
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 'maint'Lukas Larsson
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-12Merge branch 'maint'Lukas Larsson
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
2016-08-08Separate literal area from codeRickard Green
2016-08-07Correct spelling of atomicityMahesh Baheti
2016-08-01Merge branch 'maint'Raimo Niskanen
2016-08-01Merge branch 'raimo/SCTP-socket-stats/ERL-102/OTP-13773' into maintRaimo Niskanen
* raimo/SCTP-socket-stats/ERL-102/OTP-13773: Fix SCTP send stats in inet_drv Test inet:getstat/1 dead for SCTP send Fix test suite compilation warnings
2016-08-01Merge branch 'egil/erts/dont-copy-literals/OTP-13529'Björn-Egil Dahlberg
* egil/erts/dont-copy-literals/OTP-13529: erts: Refactor literal purge area arguments erts: No need to literal opt message token erts: Don't copy literals in enif_send erts: Fix literal size calculation in check_process_code erts: Remove the need for copying of literals
2016-08-01erts: Refactor literal purge area argumentsBjörn-Egil Dahlberg
2016-08-01erts: No need to literal opt message tokenBjörn-Egil Dahlberg
2016-08-01erts: Don't copy literals in enif_sendBjörn-Egil Dahlberg
2016-08-01erts: Fix literal size calculation in check_process_codeBjörn-Egil Dahlberg
We want to know the total size of literals of all heap fragmens.
2016-08-01erts: Remove the need for copying of literalsBjörn-Egil Dahlberg
* Literals are not copied between processes for messages or spawn Increases performance of message sent and processes spawned when literals are involved in messages or arguments.
2016-07-29Merge branch 'maint'Björn-Egil Dahlberg
2016-07-29Merge branch 'margnus1/erts/fix-hipe-literal-gc/PR-1122/OTP-13777' into maintBjörn-Egil Dahlberg
* margnus1/erts/fix-hipe-literal-gc/PR-1122/OTP-13777: check_process_code: Sweep HiPE stack for literals
2016-07-28Fix SCTP send stats in inet_drvRaimo Niskanen
2016-07-27Merge branch 'maint'Björn-Egil Dahlberg
2016-07-26erts: Fix epmd_module testcaseBjörn-Egil Dahlberg
Regression from OTP-13770 (84549af1c996657aedee1263afec28b21bfa42a4)
2016-07-26erts: Fix whitespaces in distribution_SUITEBjörn-Egil Dahlberg
2016-07-23zlib: support extraction of inflation dictionaryGuilherme Andrade
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