aboutsummaryrefslogtreecommitdiffstats
path: root/lib/runtime_tools/test
AgeCommit message (Collapse)Author
2018-06-18Update copyright yearHenrik Nord
2018-04-13Add zzz_SUITE with erts_debug:lc_graph last in testsSverker Eriksson
for erts, stdlib, kernel and runtime_tools.
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-01-29Merge PR-1639 from sverker/scheduler_utilization OTP-14904Sverker Eriksson
runtime_tools: Add scheduler module
2018-01-29runtime_tools: Add scheduler moduleSverker Eriksson
2017-07-17Fix testcases after removal of non-smp emulatorLukas Larsson
2016-12-07Merge branch 'maint'Dan Gudmundsson
* maint: Update copyright-year Conflicts: lib/dialyzer/src/dialyzer.hrl lib/dialyzer/src/dialyzer_options.erl lib/dialyzer/test/opaque_SUITE_data/src/recrec/dialyzer.hrl lib/dialyzer/test/opaque_SUITE_data/src/recrec/dialyzer_races.erl lib/hipe/icode/hipe_icode.erl lib/hipe/main/hipe.erl lib/hipe/main/hipe.hrl.src lib/hipe/main/hipe_main.erl
2016-12-07Update copyright-yearErlang/OTP
2016-11-30runtime_tools: Remove module dets_v8Hans Bolinder
2016-09-19Use more correct delimiters for erl_nif.h includeTuncer Ayaz
Anywhere but the beam sources we shouldn't #include "erl_nif.h", because what "erl_nif.h" does is: (1) fail to find it outside of -I dirs, (2) then treat it as if it was written like <erl_nif.h>. Using <erl_nif.h> skips (1). More information can be found in 6.10.2 of the C standard. Because the examples use "erl_nif.h", NIF projects in the Erlang ecosystem copy this verbatim and make the same mistake.
2016-06-08runtime_tools: Change LTTng dyntrace domainBjörn-Egil Dahlberg
From 'com_ericsson_dyntrace' to 'org_erlang_dyntrace'. This domain name is more suitable.
2016-05-27runtime_tools: Cuddle with t_receive testsBjörn-Egil Dahlberg
2016-05-25runtime_tools: Fix erl_tracer testcasesLukas Larsson
2016-05-09Merge branch 'sverker/trace-send-receive-matchspec/OTP-13507'Sverker Eriksson
2016-05-04runtime_tools: Add dbg tests for receive trace patternsLukas Larsson
2016-05-04runtime_tools: more dbg send trace pattern testsLukas Larsson
2016-05-04runtime_tools: Add send tpe testcaseSverker Eriksson
2016-05-04Merge branch 'zandra/optimize-rpc/OTP-13518'Zandra
* zandra/optimize-rpc/OTP-13518: use maps instead of gb_trees to optimize the rpc server let the spawned processes handle rpc replies Conflicts: lib/runtime_tools/test/dbg_SUITE.erl
2016-05-03Merge branch 'egil/runtime_tools/cuddle-tests'Björn-Egil Dahlberg
* egil/runtime_tools/cuddle-tests: runtime_tools: Cuddle with dbg_SUITE runtime_tools: Remove obsolete debug info in dbg_SUITE runtime_tools: Use 'infinity' gen_server calls
2016-05-02let the spawned processes handle rpc repliesZandra
This decreases the load on the rex server.
2016-04-29Merge branch 'egil/erts/tracing-support-lttng/OTP-13532'Björn-Egil Dahlberg
* egil/erts/tracing-support-lttng/OTP-13532: (28 commits) runtime_tools: User's guide to LTTng and dyntrace runtime_tools: Fix Dtrace build erts: Fix gc messages in tracer_SUITE erts: Fix gc messages in sensitive_SUITE erts: Fix gc messages in trace_port_SUITE tools: Update fprof tests tools: Update fprof with new gc traces runtime_tools: Update dyntrace_lttng_SUITE tests runtime_tools: Add 'return_to' for call tracing erts: Fix return_to trace callback erts: Update erl_tracer documentation erts: Fix erl_tracer documentation typos Update preloaded erl_tracer.beam erts: Update erl_tracer type specs runtime_tools: Add lttng dyntrace tests runtime_tools: Extend 'trace' and 'enabled' tracer callbacks erts: Extend 'enabled' and 'trace' tracer callbacks runtime_tools: Extend 'enabled' tracer callbacks erts: Extend 'enabled' tracer callbacks runtime_tools: Update lttng garbage collection trace ...
2016-04-29runtime_tools: Update dyntrace_lttng_SUITE testsBjörn-Egil Dahlberg
2016-04-29runtime_tools: Add lttng dyntrace testsBjörn-Egil Dahlberg
2016-04-25runtime_tools: Cuddle with dbg_SUITEBjörn-Egil Dahlberg
Update for new tracing in file_port_schedfix
2016-04-25runtime_tools: Remove obsolete debug info in dbg_SUITEBjörn-Egil Dahlberg
2016-04-22Eliminate use of doc and suite clausesBjörn-Egil Dahlberg
Those clause are obsolete and never used by common_test.
2016-04-22Replace ?t with test_serverBjörn-Egil Dahlberg
The macro ?t is deprecated. Replace its use with 'test_server'.
2016-04-22Replace use of test_server:format/2 with io:format/2Björn-Egil Dahlberg
2016-04-22Eliminate use of test_server:fail/0,1Björn-Egil Dahlberg
2016-04-22Eliminate use of ?config() macroBjörn-Egil Dahlberg
2016-04-22Modernize use of timetrapsBjörn-Egil Dahlberg
2016-04-22Remove ?line macrosBjörn-Egil Dahlberg
2016-04-15runtime_tools: Make dbg work with erl_tracer modulesLukas Larsson
OTP-13500
2016-04-15runtime_tools: Update dbg to work with tracing on portsLukas Larsson
OTP-13500
2016-04-13runtime_tools: Skip dyntrace test if LTTng is enabledBjörn-Egil Dahlberg
2016-03-15update copyright-yearHenrik Nord
2016-02-17Makefiles: Remove test_server from include path and code pathBjörn Gustavsson
Since no test suites includede test_server.hrl, there is no need to have test_server in the include path or code path.
2016-02-17Eliminate use of test_server.hrl and test_server_line.hrlBjörn Gustavsson
As a first step to removing the test_server application as as its own separate application, change the inclusion of test_server.hrl to an inclusion of ct.hrl and remove the inclusion of test_server_line.hrl.
2016-02-02erts: Add microstate accountingLukas Larsson
Microstate accounting is a way to track which state the different threads within ERTS are in. The main usage area is to pin point performance bottlenecks by checking which states the threads are in and then from there figuring out why and where to optimize. Since checking whether microstate accounting is on or off is relatively expensive if done in a short loop only a few of the states are enabled by default and more states can be enabled through configure. I've done some benchmarking and the overhead with it turned off is not noticible and with it on it is a fraction of a percent. If you enable the extra states, depending on the benchmark, the ovehead when turned off is about 1% and when turned on somewhere inbetween 5-15%. OTP-12345
2015-06-18Change license text to APLv2Bruce Yinhe
2015-02-27Merge branch 'maint'Björn Gustavsson
* maint: Ensure dbg tracer exits when dbg is stopped
2015-02-27Merge branch 'fishcakez/runtime_tools/dbg/OTP-12517' into maintBjörn Gustavsson
* fishcakez/runtime_tools/dbg/OTP-12517: Ensure dbg tracer exits when dbg is stopped
2015-02-26Ensure dbg tracer exits when dbg is stoppedJames Fish
Previously the tracer might receive an 'EXIT' message in the trace receive loop and treat it as garbage. Test uses a custom dbg process handler to reliably recreate the race condition, i.e. the message order {trace, ..}, {'EXIT, ..}.
2014-12-15Start using os:getenv/2 funPeter Lemenkov
See #535 Signed-off-by: Peter Lemenkov <[email protected]>
2014-11-02Expose NIF versionPeter Lemenkov
This patch allows checking for NIF API version in a way similar to driver version. E.g. by calling erlang:system_info(nif_version). Signed-off-by: Peter Lemenkov <[email protected]>
2014-03-20Introduce system_information:sanity_check()Rickard Green
2014-02-24Add test suites performing app and appup file checksTobias Schlager
Add the mentioned test suites for *all* library and touched non-library applications.
2013-07-15Check for native code without loading moduleBjörn-Egil Dahlberg
2013-07-15Add system_information testsuiteBjörn-Egil Dahlberg
2012-10-30runtime_tools: Fix failing testcaseDan Gudmundsson