aboutsummaryrefslogtreecommitdiffstats
path: root/lib/runtime_tools
AgeCommit message (Collapse)Author
2018-03-26Merge pull request #1757 from c-bik/patch-1John Högberg
Fix a small typo
2018-03-22Documentation TypoBikram Chatterjee
2018-03-21Merge pull request #1740 from rickard-green/rickard/signals/OTP-14589Rickard Green
Implementation of true asynchronous signaling between processes
2018-03-21Implementation of true asynchronous signaling between processesRickard Green
Communication between Erlang processes has conceptually always been performed through asynchronous signaling. The runtime system implementation has however previously preformed most operation synchronously. In a system with only one true thread of execution, this is not problematic (often the opposite). In a system with multiple threads of execution (as current runtime system implementation with SMP support) it becomes problematic. This since it often involves locking of structures when updating them which in turn cause resource contention. Utilizing true asynchronous communication often avoids these resource contention issues. The case that triggered this change was contention on the link lock due to frequent updates of the monitor trees during communication with a frequently used server. The signal order delivery guarantees of the language makes it hard to change the implementation of only some signals to use true asynchronous signaling. Therefore the implementations of (almost) all signals have been changed. Currently the following signals have been implemented as true asynchronous signals: - Message signals - Exit signals - Monitor signals - Demonitor signals - Monitor triggered signals (DOWN, CHANGE, etc) - Link signals - Unlink signals - Group leader signals All of the above already defined as asynchronous signals in the language. The implementation of messages signals was quite asynchronous to begin with, but had quite strict delivery constraints due to the ordering guarantees of signals between a pair of processes. The previously used message queue partitioned into two halves has been replaced by a more general signal queue partitioned into three parts that service all kinds of signals. More details regarding the signal queue can be found in comments in the erl_proc_sig_queue.h file. The monitor and link implementations have also been completely replaced in order to fit the new asynchronous signaling implementation as good as possible. More details regarding the new monitor and link implementations can be found in the erl_monitor_link.h file.
2018-03-14Merge branch 'maint'Henrik
Conflicts: OTP_VERSION
2018-03-09Update release notesErlang/OTP
2018-03-09Update version numbersErlang/OTP
2018-02-21Merge branch 'maint'John Högberg
2018-02-20Fix regression introduced in d468fcbb / OTP-14816John Högberg
The ~p format specifier made file:consult/1 hysterically slow on one of our test machines that had a unicode character in the root of the code path; all paths were printed as lists and indented with way too much whitespace. Using ~w avoids this issue by never indenting.
2018-02-13Merge branch 'maint'Sverker Eriksson
* maint: Updated OTP version Update release notes Update version numbers kernel: Add os:cmd/2 with max_size option # Conflicts: # OTP_VERSION # lib/kernel/doc/src/os.xml # lib/kernel/src/os.erl
2018-02-13Merge branch 'maint-20' into maintSverker Eriksson
* maint-20: Updated OTP version Update release notes Update version numbers erts: Add system_flags(erts_alloc,"+M?sbct *") erts: Add age order first fit allocator strategies erts: Refactor erl_ao_firstfit_alloc erts: Add migration options "acnl" and "acfml" kernel: Add os:cmd/2 with max_size option erts: Add more stats for mbcs_pool erts: Fix alloc_SUITE:migration stdlib: Make ets_SUITE memory check try again erts: Improve carrier pool search erts: Improve alloc_SUITE:migration erts: Refactor carrier dealloc migration
2018-02-12Update release notesErlang/OTP
2018-02-12Update version numbersErlang/OTP
2018-02-12Merge 'sverker/maint-20/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/master/alloc-n-migration/ERIERL-88'
2018-02-12Merge 'sverker/maint-19/alloc-n-migration/ERIERL-88'Sverker Eriksson
into 'sverker/maint-20/alloc-n-migration/ERIERL-88' OTP-14915 OTP-14916 OTP-14917 OTP-14918
2018-02-12erts: Add age order first fit allocator strategiesSverker Eriksson
ageffcaoff: Age First Fit Carrier, Address Order First Fit (within carrier) ageffcbf : Age First Fit Carrier, Best Fit (within carrier) ageffcaobf: Age First Fit Carrier, Address Order Best Fit (within carrier) Prefer old carriers, the older the better.
2018-02-06runtime_tools: Do not call erlang:get_stacktrace()Hans Bolinder
2018-01-29Merge PR-1639 from sverker/scheduler_utilization OTP-14904Sverker Eriksson
runtime_tools: Add scheduler module
2018-01-29runtime_tools: Add scheduler moduleSverker Eriksson
2018-01-15Merge branch 'maint'John Högberg
2018-01-11Reduce memory use of system_information:to_file/1John Högberg
The previous implementation generated a term, converted it to plain text with io_lib:format/2, and then converted that to a binary before writing it to disk. We now emit the term as we go, which should make it a bit safer to extract this information under load.
2017-12-19Merge branch 'dgud/kernel/refc_sched_wall_time/OTP-11694'Dan Gudmundsson
* dgud/kernel/refc_sched_wall_time/OTP-11694: test: spawn scheduler_wall_time flag holder Turn on scheduler_wall_time in an alive process Redirect system_flag(scheduler_wall_time,_) to kernel_refc kernel: add a resource reference counter
2017-12-19Turn on scheduler_wall_time in an alive processDan Gudmundsson
scheduler_wall_time is ref-counted so it will turn off if process dies, keep the process that turns it on alive.
2017-12-13Merge branch 'maint'Henrik Nord
2017-12-08Update release notesErlang/OTP
2017-12-08Update version numbersErlang/OTP
2017-11-30Use tcp_inet as an example driver instead of efileJohn Högberg
2017-11-30Remove all mention of efile_drv from DTrace docsJohn Högberg
efile_drv is gone and so is the need for file-specific DTrace. The new implementation works fine with the normal tracing mechanism so there's nothing preventing anyone from making an erl_tracer nif that forward these events to DTrace.
2017-11-20Merge branch 'maint'Lukas Larsson
2017-10-31Refactor xmllint check and make it fail on failureLukas Larsson
This commit also adds a check to see that all files that are part of an xi:include also have part of XML_FILES and vice versa. It also fixes any applications where this was not true.
2017-10-10Merge branch 'maint'Lars Thorsen
2017-10-10Merge branch 'lars/doc-cleanup/OTP-14475' into maintLars Thorsen
* lars/doc-cleanup/OTP-14475: [edoc] Remove unused module otpsgml_layout.erl Remove unused files from the documentation build
2017-10-05Merge branch 'lukas/erts/poll-thread/OTP-14346'Lukas Larsson
* lukas/erts/poll-thread/OTP-14346: erts: Update +IOt and msacc docs
2017-10-02erts: Update +IOt and msacc docsLukas Larsson
2017-09-28Remove unused files from the documentation buildLars Thorsen
2017-09-26Merge branch 'maint'Henrik Nord
2017-09-22Update release notesErlang/OTP
2017-09-22Update version numbersErlang/OTP
2017-09-15Merge branch 'siri/string-new-api'Siri Hansen
* siri/string-new-api: (28 commits) hipe (test): Do not use deprecated functions in string(3) dialyzer (test): Do not use deprecated functions in string(3) eunit (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) system (test): Do not use deprecated functions in string(3) mnesia (test): Do not use deprecated functions in string(3) Deprecate old string functions observer: Do not use deprecated functions in string(3) common_test: Do not use deprecated functions in string(3) eldap: Do not use deprecated functions in string(3) et: Do not use deprecated functions in string(3) os_mon: Do not use deprecated functions in string(3) debugger: Do not use deprecated functions in string(3) runtime_tools: Do not use deprecated functions in string(3) asn1: Do not use deprecated functions in string(3) compiler: Do not use deprecated functions in string(3) sasl: Do not use deprecated functions in string(3) reltool: Do not use deprecated functions in string(3) kernel: Do not use deprecated functions in string(3) hipe: Do not use deprecated functions in string(3) ... Conflicts: lib/eunit/src/eunit_lib.erl lib/observer/src/crashdump_viewer.erl lib/reltool/src/reltool_target.erl
2017-09-15runtime_tools: Do not use deprecated functions in string(3)Dan Gudmundsson
2017-09-07Merge branch 'maint'Siri Hansen
2017-09-05observer: Improve handling of UnicodeSiri Hansen
2017-08-16Merge branch 'maint'Lukas Larsson
2017-08-11Add System statistics / limit panelGabriele Santomaggio
Show the statistics, limits and percentage for atoms, processes,ports and ETS. Backward compatibility with old versions, In case the valuse is missing it shows the string Not available.
2017-07-17Fix testcases after removal of non-smp emulatorLukas Larsson
2017-06-30Update release notesErlang/OTP
2017-06-30Update version numbersErlang/OTP
2017-06-29[dbg] Fix encoding commentSiri Hansen
Encoding specified in a comment must be 'utf-8' instead of 'utf8'.
2017-06-21Prepare releaseErlang/OTP
2017-06-16[dbg] Update default trace handler to print unicode atoms correctlySiri Hansen