aboutsummaryrefslogtreecommitdiffstats
path: root/erts
AgeCommit message (Collapse)Author
2014-03-20Teach the call_time trace to notice when the trace dies (non-SMP system)Björn Gustavsson
The call_time trace is a special kind of tracing that requires a tracer process just like ordinary call trace, but it never actually sends anything to the tracer. It merely use the existence of a trace process (and call trace flags) as an indication that call_time tracing is active for the process. If the tracer dies in a non-SMP run-time system, processes with call_time tracing would not notice that the tracer had died. Furthermore, if the set_on_spawn flag was active, the dead tracer could be propagaged to newly spawned processes. Before accumulating trace information in a non-SMP system, always validate the tracer process. (In an SMP system, a reference to a dead tracer will be cleared away each time a process is scheduled.) While we could put all of the new code beam_bp.c, we have chosen to make a function call from beam_bp.c to a function in erl_trace.c for clarity's sake and to ease further maintenance. In the future, we might want to handle tracing in more similar ways in the SMP and non-SMP system.
2014-03-04Merge branch 'bjorn/hipe/fix-race-condition'Björn Gustavsson
* bjorn/hipe/fix-race-condition: Delay patching of closures to eliminate a race condition hipe: Break apart hipe_bif:make_fe/3 into two BIFs
2014-03-03Merge branch 'egil/fix-maps-eq'Björn-Egil Dahlberg
* egil/fix-maps-eq: erts: Fix Map cmp exact equal of an empty map
2014-02-28hipe: Break apart hipe_bif:make_fe/3 into two BIFsBjörn Gustavsson
This commit is a preparation for eliminating a race condition loading the native code for modules whose BEAM code has already been loaded. Here we introduce two new BIFs so that looking up a fun entry is separate from setting the native address in the fun entry.
2014-02-27erts: Fix Map cmp exact equal of an empty mapBjörn-Egil Dahlberg
The expression, #{} =:= M where M was any Map, would always result in 'true'. This commit fixes this issue by first comparing sizes for both terms and then checking for size zero.
2014-02-26Merge branch 'bjorn/erts/fp-exceptions-on-osx'Björn Gustavsson
* bjorn/erts/fp-exceptions-on-osx: Disable accidentally enabled floating point exceptions on MacOS X
2014-02-26Update preloaded and primary bootstrapRickard Green
2014-02-26Disable accidentally enabled floating point exceptions on MacOS XBjörn Gustavsson
In c7ddafbe, which disabled floating point exceptions on Linux, floating point exceptions were accidentally enabled on MacOS X.
2014-02-25Merge branch 'sverk/hipe-disable-gc-bug'Sverker Eriksson
* sverk/hipe-disable-gc-bug: erts: Fix heap overwrite by hipe "trap frames" when GC is disabled ASSERT that GC is not tried with "need" when GC is disabled
2014-02-25erts: Fix heap overwrite by hipe "trap frames" when GC is disabledSverker Eriksson
by trapping BIFs like term_to_binary and binary_to_term.
2014-02-24Merge branch 'lukas/erts/float_encoding/OTP-11738'Lukas Larsson
* lukas/erts/float_encoding/OTP-11738: erts: Set default external enc to use new float scheme
2014-02-24Merge branch 'lukas/ose/master/OTP-11334'Lukas Larsson
* lukas/ose/master/OTP-11334: (71 commits) erts: Fix unix efile assert ose: Use -O2 when building ose: Expand OSE docs ose: Add dummy ttsl driver ose: Cleanup cleanup of mutex selection defines ose: Polish mmap configure checks ose: Add ose specific x-compile flags ose: Updating fd_driver and spawn_driver for OSE ose: Updating event and signal API for OSE ose: Cleanup of mutex selection defines win32: Compile erl_log.exe ose: Remove uneccesary define ose: Fix ssl configure test for osx erts: Fix sys_msg_dispatcher assert ose: Fix broken doc links ose: Thread priorities configurable from lmconf ose: Yielding the cpu is done "the OSE" way ose: Start using ppdata for tse key ose: Do not use spinlocks on OSE ose: Fix support for crypto ... Conflicts: lib/crypto/c_src/crypto.c
2014-02-24erts: Fix unix efile assertLukas Larsson
If writev return an error (eg ENOSPC) we do not want to abort here but instead propagate upwards into erlang.
2014-02-24ose: Expand OSE docsLukas Larsson
2014-02-24ose: Add dummy ttsl driverLukas Larsson
2014-02-24ose: Cleanup cleanup of mutex selection definesLukas Larsson
2014-02-24ose: Polish mmap configure checksLukas Larsson
2014-02-24ose: Updating fd_driver and spawn_driver for OSEJonas Karlsson
2014-02-24ose: Updating event and signal API for OSEJonas Karlsson
2014-02-24ose: Cleanup of mutex selection definesLukas Larsson
2014-02-24win32: Compile erl_log.exeLukas Larsson
erl_log is used together with debug emulator. Use 'erl -debug -console' to get a denug console.
2014-02-24ose: Remove uneccesary defineLukas Larsson
2014-02-24ose: Fix ssl configure test for osxLukas Larsson
2014-02-24erts: Fix sys_msg_dispatcher assertLukas Larsson
Schedulers is too restrictive. Managed threads should be able to clean this up.
2014-02-24ose: Fix broken doc linksLukas Larsson
2014-02-24ose: Thread priorities configurable from lmconfLukas Larsson
The pattern used for getting the priority from the lmconf is based on the name of the process created. The pattern is: ERTS_%%PROCESS_NAME%%_PRIO with the %%PROCESS_NAME%% replaced by the prefix of the process the priority applies to. eg: ERTS_SCHEDULER_PRIO=24 applies to processes with name SCHEDULER_1, SCHEDULER_2 etc.
2014-02-24ose: Yielding the cpu is done "the OSE" wayLukas Larsson
2014-02-24ose: Start using ppdata for tse keyLukas Larsson
2014-02-24ose: Do not use spinlocks on OSELukas Larsson
This is because it is very easy to deadlock/livelock inbetween processes on OSE.
2014-02-24ose: Fix support for cryptoLukas Larsson
To enable it you have to modify the OSESSL variable in the ose xcomp file.
2014-02-24ose: Cleanup POLL_SCHED_1 codeLukas Larsson
Now schedulers 2..N make sure to wake sched 1 if they find that all io has been consumed and sched 1 is sleeping. Before sched 1 was spinning in sys_schedule waiting for sched 2..N to finish consuming io jobs
2014-02-24ose: Added Enea copyright header to lcf files.Robert Paal
Also removed softkernel lcf files.
2014-02-24ose: Eliminating delays when trying to open filesRobert Paal
When opening filers on not mounted volumes the default timeout on OSE is quite big and since at startup we load something like 20 beam files this slows down startup by as much as 50 seconds.
2014-02-24ose: Remove receive in debugLukas Larsson
Sometimes scheduler 1 should go in here and it will have signals, so remove this. If needed later a check to see that fsem is used for scheduler 1 is needed.
2014-02-24ose: Update ddll interface after rebase to 17.0-rc1Lukas Larsson
Also deleted all the copy-paste stuff
2014-02-24ose: Add fair scheduling yieldsLukas Larsson
This is needed on OSs that do not do round robin scheduling of threads.
2014-02-24ose: Refactor global variables to ppdataLukas Larsson
This is needed because when starting multiple processes from the same shell command they will see the same global data if using status variables.
2014-02-24ose: Port run_erl and to_erlLukas Larsson
2014-02-24erts: Refactor common parts out of run_erl and to_erlLukas Larsson
This is in preperation for writing ose version of run_erl and to_erl
2014-02-24to_erl: Fix handshake ^R -> ^L code commentsLukas Larsson
2014-02-24ose: Create OSE applicationLukas Larsson
Create an specific OSE application that mainly contains documentation around the OSE specific part of Erlang/OTP.
2014-02-24ose: Fix check for HAVE_OSE_SPI_HLukas Larsson
2014-02-24ose: Rewrite resolve_signal API for ose driversLukas Larsson
This new API has less impact on the check_io code and also removes the callback from ErlDrvEntry. The downside is that you have to give the resolve function when creating each event. Also the mode if the resolve was removed as this mimics the win32 code and decreases complexity.
2014-02-24ose: Shutdown cleanlyLukas Larsson
2014-02-24ose: Fix starting with pm_createLukas Larsson
For some reason starting with pm_create offsets the input argument list by one, so we have to adjust them before calling erl_start.
2014-02-24ose: Update erl_assert_error after R16B03 api changeLukas Larsson
2014-02-24ose: OSE port related cleanup and fixesJonas Karlsson
Some OSE cross-chains have problems with system includes being used, so for atleast OSE specific parts we use "" instead of <>.
2014-02-24ose: efile driver updates.Jonas Karlsson
2014-02-24ose: Fix printout to stdout to not duplicate long buffersLukas Larsson
2014-02-24ose: Bugfixes to filesystem related issues.Jonas Karlsson