Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
Either rely on the default 30 minutes timetrap, or set the timeout
using the supported methods in common_test.
|
|
interpretable/1 tests (among other things) that we are not allowed
to interpret modules in certain applications (such as kernel and
stdlib).
int:interpretable/1 as currently implement enforces the restriction
only in an installed system (the applications must have versions,
such as kernel-1.2.3).
We could modify int:interpretable/1 to enforce the restriction,
but it could sometimes be useful to be able to debug (for example)
erl_lint or other library modules that can safely be reloaded
without crashing the run-time system.
Therefore, assume that anyone working in a non-installed system
knows what they are doing and fix the test case so that it stop
failing in a non-installed system.
|
|
c7e82c6b406b teached the debugger to use the 'source' key
in Mod:module_info/1 to help locate the source code
corresponding to a BEAM file. The new test that was added
at the same time will fail if the test suites were
cross-compiled on another computer (i.e., the 'source' key
would not point to the source file on the target computer).
Avoid the problem by letting int_SUITE:init_per_suite/1 compile
the BEAM files. That will ensure that 'source' keys points to
the actual source file.
|
|
that uses its own super carrier (erts_exec_mmapper)
to guarantee low addressed and executable memory (PROT_EXEC).
Currently only used on x86_64 that needs low memory
for HiPE/AMD64's small code model.
By initializing erts_exec_mapper early we secure
its low memory area before erts_literal_mmapper might
steal it.
|
|
to prepare for hipe native code allocation.
|
|
Make the callbacks more general to be usable for any allocator
that that uses its own ErtsMemMapper.
|
|
Reduce main carrier size
and number of free descriptors.
|
|
|
|
* lukas/erts/tracer-module-and-more/PR-1009/OTP-10268: (26 commits)
erts: Don't trace on link events when port is dead
erts: more logging in trace_bif_SUITE trace_bif_return
erts: Make trace_delivered go via sys msg dispatcher again
erts: Add comment about future trace optimizations
erts: Optimize tracer reload test
erts: Document erlang:match_spec_test/3
runtime_tools: Make dbg work with erl_tracer modules
runtime_rools: Allow new timestamp trace flags
runtime_tools: Lots of dbg docs updates
erts: Deallocate heap fragments from trace nif calls
eprof: Fix tests after tracer module incompatabilities
fprof: update to work with new spawned trace event
erts: Add 'spawned' trace event to 'procs' trace flag
erts: send and receive no longer need status lock
erts: Do 'unregister' as "self-tracing"
erts: Silence harmless valgrind warning in dec_term
erts: Fix end_per_testcase crash in local_trace_SUITE
observer: Update ttb to work with tracing on ports
runtime_tools: Update dbg to work with tracing on ports
erts: Add tracing examples in match spec docs
...
|
|
|
|
|
|
This is needed as otherwise messages from system_profile
will not be guaranteed to arrive before trace delivered.
|
|
|
|
Without off_heap message queue the GC of the tracer could take
very long and thus delay the code:purge which would in turn allow
the trace generator to generate a lot of more messages which would
make the tracer GC for even longer etc etc. The time taken for the
testcase could go up to as large as 10 seconds and use lots of memory.
|
|
OTP-13501
|
|
OTP-13500
|
|
OTP-13502
|
|
|
|
Any heap fragment created during a nif call to a tracer nif
should be free'd immediately in order for the GC not to treat
it as live data.
|
|
|
|
OTP-13499
|
|
OTP-13497
This trace event is triggered when a process is created from the
process that is created.
|
|
Rickards said that this was ok
|
|
We have the main lock on rp->p, so why not?
|
|
provoked by nif_SUITE:nif_binary_to_term.
If we fail to decode an immediate (unsafe atom for example) with
a dummy factory then hp and factory->hp will both be uninitialized
and valgrind will complain about comparing them.
|
|
|
|
OTP-13500
|
|
OTP-13500
|
|
|
|
Tracing to port in non-smp now creates port tasks
instead of calling directly to the port to fake
schedule events don't exist any more.
|
|
erts_block/unblock_fpe should only be called at entry to/exit from
native user code.
|
|
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
|
|
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
|
|
These are convinience functions for calling nifs from erts
|
|
|
|
* lukas/erts/enif_send_null_env/OTP-13495:
erts: Add enif_send with NULL as msg env
|
|
* 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
|
|
* paulgray/inet_db_fix/PR-949/OTP-13470:
Fix start timestamp instead of time check
Allow to refresh resolver settings on startup
|
|
* binarin/erts/fix-epmd-systemd-notifications/PR-999/OTP-13493:
Don't send unasked for systemd notifications
|
|
|
|
|
|
|
|
Use cerl:make_list/1 instead of a home-made make_list/1 to ensure that
literal lists are constructed as literals. In a future release, we
would like to forbid in the loader construction of literal lists using
instructions like:
put_list {atom,a} [] Dst
The proper way is:
move {literal,[a]} {x,0}
Also update the comment about "put_list Const [] Dst" in ops.tab.
|
|
In 1f0ae04d374, a complete register map was introduced in the %live
instructions thar are added by beam_utils:live_opt/1.
Use the register map to improve beam_utils:is_killed_block/2.
|
|
* egil/fix-dyntrace-test:
runtime_tools: Skip dyntrace test if LTTng is enabled
|
|
Several improvements in the compiler (e.g. c288ab87fd6) has
lead to an Y register being the target for get_tuple_element
instructions. Therefore, introduce i_get_tuple_element2y
that combines two consecutive get_tuple_element instructions
that target Y registers.
|
|
packed_registers/1 may have actually tested put_list/3 instructions
with high register numbers at some time. Currently, the compiler
will generate code that only uses low register numbers.
Totally rewrite the test case. It is difficult to arrange so that
put_list/3 uses three high register numbers, so we will use
get_list/3 instructions with high register numbers.
|