aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2016-04-15erts: Extend process and port tracingLukas Larsson
This commit completes the tracing for processes so that all messages sent by a process (via nifs or otherwise) will be traced. The commit also adds tracing of all types of events from ports. When enabling tracing using erlang:trace, the 'all' flag now also enables tracing on all ports. OTP-13496
2016-04-15erts: Implement tracer modulesLukas Larsson
Add the possibility to use modules as trace data receivers. The functions in the module have to be nifs as otherwise complex trace probes will be very hard to handle (complex means trace probes for ports for example). This commit changes the way that the ptab->tracer field works from always being an immediate, to now be NIL if no tracer is present or else be the tuple {TracerModule, TracerState} where TracerModule is an atom that is later used to lookup the appropriate tracer callbacks to call and TracerState is just passed to the tracer callback. The default process and port tracers have been rewritten to use the new API. This commit also changes the order which trace messages are delivered to the potential tracer process. Any enif_send done in a tracer module may be delayed indefinitely because of lock order issues. If a message is delayed any other trace message send from that process is also delayed so that order is preserved for each traced entity. This means that for some trace events (i.e. send/receive) the events may come in an unintuitive order (receive before send) to the trace receiver. Timestamps are taken when the trace message is generated so trace messages from differented processes may arrive with the timestamp out of order. Both the erlang:trace and seq_trace:set_system_tracer accept the new tracer module tracers and also the backwards compatible arguments. OTP-10267
2016-04-15erts: Add erts_nif_get_funcs and erts_nif_call_functionLukas Larsson
These are convinience functions for calling nifs from erts
2016-04-15erts: Calculate flatmap value offsetLukas Larsson
2016-04-15Merge branch 'lukas/erts/enif_send_null_env/OTP-13495'Lukas Larsson
* lukas/erts/enif_send_null_env/OTP-13495: erts: Add enif_send with NULL as msg env
2016-04-15Merge branch 'egil/erts/fix-erlang-system_profile/ERL-126/OTP-13494'Björn-Egil Dahlberg
* egil/erts/fix-erlang-system_profile/ERL-126/OTP-13494: erts: Enhance system_profile tests erts: Don't use function location when process is terminating
2016-04-15Merge branch 'paulgray/inet_db_fix/PR-949/OTP-13470'Raimo Niskanen
* paulgray/inet_db_fix/PR-949/OTP-13470: Fix start timestamp instead of time check Allow to refresh resolver settings on startup
2016-04-14Merge branch 'binarin/erts/fix-epmd-systemd-notifications/PR-999/OTP-13493'Björn-Egil Dahlberg
* binarin/erts/fix-epmd-systemd-notifications/PR-999/OTP-13493: Don't send unasked for systemd notifications
2016-04-14erts: Enhance system_profile testsBjörn-Egil Dahlberg
2016-04-14erts: Don't use function location when process is terminatingBjörn-Egil Dahlberg
2016-04-14Merge branch 'sverker/erts/open_port-improper-args.ERL-127.OTP-13489'Sverker Eriksson
2016-04-14Merge branch 'egil/fix-dyntrace-test'Björn-Egil Dahlberg
* egil/fix-dyntrace-test: runtime_tools: Skip dyntrace test if LTTng is enabled
2016-04-13runtime_tools: Skip dyntrace test if LTTng is enabledBjörn-Egil Dahlberg
2016-04-13Merge branch 'egil/erts/opt-list_append/OTP-13487'Björn-Egil Dahlberg
* egil/erts/opt-list_append/OTP-13487: erts: Optimize '++' operator
2016-04-13Merge branch 'egil/tools/modernize-tests'Björn-Egil Dahlberg
* egil/tools/modernize-tests: tools: Don't divide by zero in tests Fix instruments_SUITE sumblock check Eliminate use of doc and suite clauses Replace ?t with test_server Use test_server:is_debug/0 instead of custom check Replace use of test_server:format/2 with io:format/2 Eliminate use of ?config() macro Eliminate use of test_server:fail/0,1 Eliminate erlang:now/0 Modernize use of timetraps Remove ?line macros
2016-04-13erts: Improve port_SUITE:bad_envSverker Eriksson
It's not just ok to throw badarg, it MUST throw badarg.
2016-04-13erts: Fix bug in open_port with {args,ImproperList}Sverker Eriksson
2016-04-13tools: Don't divide by zero in testsBjörn-Egil Dahlberg
2016-04-13Merge branch 'siri/otp-19-vsns'Siri Hansen
* siri/otp-19-vsns: Update version of common_test for OTP-19 Update versions
2016-04-13Merge branch 'siri/ct/mods-in-app-file/OTP-13475'Siri Hansen
* siri/ct/mods-in-app-file/OTP-13475: Don't add explicit path to ct_release_test Add missing modules to common_test.app.src
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-04-12Merge branch 'sverker/crypto/skip-link_test-without-ldd'Sverker Eriksson
2016-04-12Merge branch 'sverk/big-external-creations.OTP-13488'Sverker Eriksson
2016-04-12Merge branch 'patch-2' of https://github.com/michaelklishin/otpSverker Eriksson
2016-04-11Merge branch 'msantos/erts/cli-abort-on-alloc-fail/PR-948/OTP-13486'Björn-Egil Dahlberg
* msantos/erts/cli-abort-on-alloc-fail/PR-948/OTP-13486: erts/common: check for OOM on Windows
2016-04-11Merge branch 'egil/erts-lib/modernize-tests'Björn-Egil Dahlberg
* egil/erts-lib/modernize-tests: Replace test_server:os_type/0 with os:type/0 Eliminate use of doc and suite clauses Replace use of test_server:format/2 with io:format/2 Eliminate use of test_server:fail/0,1 Eliminate use of ?config() macro Modernize use of timetraps Remove ?line macros
2016-04-11Merge branch 'bjorn/raise'Björn Gustavsson
* bjorn/raise: Remove unreachable code after 'raise' instructions Simplify the raise instruction to reduce code size
2016-04-11erts: Optimize '++' operatorBjörn-Egil Dahlberg
This also optimizes the BIF lists:append/2 Use one pass to check for properness and copying LHS list. If LHS turns out not being a proper list, bail and reset htop. If we run out of heap, allocate a heap-fragment and calculate the remaining length as normal, thus checking for properness, and then continue copying. Measurements shows this being ~50% faster.
2016-04-10Typos correction, minor wording changeMichael Klishin
2016-04-08Merge branch 'egil/erts/fix-process_info-spec/ERL-123/OTP-13485'Björn-Egil Dahlberg
* egil/erts/fix-process_info-spec/ERL-123/OTP-13485: Update preloaded erlang.beam erts: Fix process_info/2 result spec
2016-04-08Merge branch 'egil/erts/cuddle-tests'Björn-Egil Dahlberg
* egil/erts/cuddle-tests: Additional logging for alloc_SUITE Replace test_server:os_type/0 with os:type/0 Let low_prio test run a bit longer Increase timetrap for atom_roundtrip_r15b Remove unnecessary ct boilerplate in suite Don't divide by zero in test logging Use ct:fail/1 instead of test_server:fail/1 Relax node_container_SUITE Increase timetrap timeout for op_SUITE:bsl_bsr/1 Increase timetrap timeout for port_SUITE:huge_env/1
2016-04-08Additional logging for alloc_SUITEBjörn-Egil Dahlberg
2016-04-08Replace test_server:os_type/0 with os:type/0Björn-Egil Dahlberg
2016-04-08Let low_prio test run a bit longerBjörn-Egil Dahlberg
2016-04-08Increase timetrap for atom_roundtrip_r15bBjörn-Egil Dahlberg
2016-04-08Remove unnecessary ct boilerplate in suiteBjörn-Egil Dahlberg
2016-04-08Don't divide by zero in test loggingBjörn-Egil Dahlberg
2016-04-08Don't add explicit path to ct_release_testSiri Hansen
This module is now in common_test.app, so it will be included in the release which is upgraded from (and to).
2016-04-08Update version of common_test for OTP-19Siri Hansen
This is done early so test of ct_release_test shall work.
2016-04-08Remove unreachable code after 'raise' instructionsBjörn Gustavsson
Remove the unreachable instructions after a 'raise' instruction (e.g. a 'jump' or 'deallocate', 'return') to decrease code size.
2016-04-08Simplify the raise instruction to reduce code sizeBjörn Gustavsson
The raise/2 instruction is almost always used like this: raise x(2) x(1) Therefore, we can translate it to an internal i_raise/0 instruction that uses x(2) x(1) as its implicit operands. We will also remove the backward compatibility with R10-0. It is unlikely that anyone still is using BEAM files compiled with the R10-0 compiler, especially since most of those modules cannot be loaded. The loader will refuse to load any module that uses the old non-GCIng arithmetic instructions or the non-GCing versions of length/1 or size/1. Doing these changes will reduce both the size of the loaded BEAM code and size of the code in process_main().
2016-04-07erts: Add DFLAG_BIG_CREATIONSverker Eriksson
to let future nodes know that we can handle NEW_PID_EXT, NEW_PORT_EXT and NEWER_REFERENCE_EXT.
2016-04-07Use ct:fail/1 instead of test_server:fail/1Björn-Egil Dahlberg
2016-04-07jinterface: Support 32-bit creation valuesSverker Eriksson
2016-04-07erl_interface: Support 32-bit creation for pid,port,refsSverker Eriksson
2016-04-07erts: Support 32-bit creation for external pid,port,refsSverker Eriksson
from future nodes.
2016-04-07erl_interface: Cuddle test ei_tmo_SUITESverker Eriksson
Increase max number of messages sent to fill buffers.
2016-04-07test_server,erl_interface: Add test_host_not_reachable configSverker Eriksson
2016-04-07erts: Refactor ETS compressed encoding of local nodeSverker Eriksson
Instead of INTERNAL_CREATION (255), use empty atom for node name to mean the local node (regardless of node name or creation). The purpose is to get rid of special value 255, for future expansion of creation to 32-bit.
2016-04-07erts: Rename atom '' from am_Cookie to am_EmptySverker Eriksson