summaryrefslogtreecommitdiff
path: root/erts/etc/unix
Commit message (Collapse)AuthorAgeFilesLines
* Fix run_erl.c so it compiles on SolarisRogier Velting2018-10-051-3/+3
| | | | | The checks in place to allow this file to compile on macOS and BSD can be extended to include Solaris.
* erts: Fix benign bug in cerl for valgrindSverker Eriksson2018-07-101-2/+3
| | | | benign until valgrind version 4.* shows up.
* Merge branch 'sverker/cerl-fixing' into maintSverker Eriksson2018-06-281-17/+4
|\ | | | | | | | | | | * sverker/cerl-fixing: erts: Remove "-pz $PRELOADED" arguments added by cerl erts: Remove dead code in cerl script
| * erts: Remove "-pz $PRELOADED" arguments added by cerlSverker Eriksson2018-06-081-6/+2
| | | | | | | | | | | | | | It caused problems when starting with -rr and other arguments. Not sure what purpose it served as -pz $PRELOADED is not passed by default by "erl".
| * erts: Remove dead code in cerl scriptSverker Eriksson2018-06-081-11/+2
| |
* | Merge branch 'lukas/erts/etp-aux-work-fixes' into maintLukas Larsson2018-06-201-7/+19
|\ \ | | | | | | | | | | | | * lukas/erts/etp-aux-work-fixes: erts: Update etp-commands with correct aux_flags
| * | erts: Update etp-commands with correct aux_flagsLukas Larsson2018-06-181-7/+19
| | |
* | | Update copyright yearHenrik Nord2018-06-182-2/+2
|/ /
* | erts: Fix emulator log messages to use erlang:system_timeLukas Larsson2018-06-051-1/+0
|/ | | | This was changed in the logger in 8aa64c90ddd20ec0ca8cc5fe92a6124324c51da5.
* Update etpRickard Green2018-05-161-3/+158
|
* erts: Break etp-processes/ports when all foundLukas Larsson2018-03-291-3/+7
|
* Implementation of true asynchronous signaling between processesRickard Green2018-03-211-157/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Replace usage of ERTS_PSFLG_BOUNDRickard Green2018-03-051-1/+1
|
* Remove ERTS_PSFLG_ON_HEAP_MSGQRickard Green2018-03-051-1/+1
|
* Merge branch 'maint'Sverker Eriksson2017-11-271-5/+2
|\
| * run_erl: Cleanup buggy retry of closeSverker Eriksson2017-11-231-5/+2
| | | | | | | | | | | | | | The retry loop wasn't working anyway as it tested fd<0 instead of res. So, there is no real semantic change here.
* | Merge branch 'maint'Sverker Eriksson2017-10-161-12/+27
|\ \ | |/
| * erts: Add -rr option to cerl start scriptSverker Eriksson2017-10-121-12/+27
| | | | | | | | to run beam with "rr record".
* | erts: Move all I/O polling to a seperate threadLukas Larsson2017-10-021-12/+30
| |
* | run_erl: Fix error handling in sf_close and during pty master readMarko Turk2017-08-121-1/+5
| |
* | erts: Cleanup removal of non-smp emulatorsLukas Larsson2017-07-171-23/+0
| |
* | erts: Remove usage of sys.h from etc toolsLukas Larsson2017-07-171-7/+1
|/
* Update copyright yearHans Nilsson2017-06-141-1/+1
|
* Merge branch 'lukas/erts/etp-processes-ports-optimization'Lukas Larsson2017-05-231-7/+25
|\ | | | | | | | | * lukas/erts/etp-processes-ports-optimization: erts: Optimize etp-processes and etp-ports
| * erts: Optimize etp-processes and etp-portsLukas Larsson2017-05-221-7/+25
| | | | | | | | | | | | Not calculating the max, table and invalid addresses each loop speeds up iterating through the processes list by about 5x.
* | Merge branch 'rickard/ds-runqs'Rickard Green2017-05-191-2/+2
|\ \ | |/ |/| | | | | | | | | OTP-14152 * rickard/ds-runqs: Make statistics/1 aware of dirty run-queues and tasks
| * Make statistics/1 aware of dirty run-queues and tasksRickard Green2017-05-191-2/+2
| |
* | Let --enable-lock-counter build an additional emulatorBjörn Gustavsson2017-05-161-2/+2
|/ | | | | | | | | | | | | "./configure --enable-lock-counter" would modify the behavior of the default emulator (usually SMP). To make lock counting more accessible, change --enable-lock-counter to build an additional emulator in the same way as: (cd erts/emulator && make lcnt) (The next commit will make it easier to start the built lock-counter emulator.)
* Update copyright yearRaimo Niskanen2017-05-045-5/+5
|
* Merge branch 'rickard/timer-improvements'Rickard Green2017-04-211-0/+75
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-14356 * rickard/timer-improvements: Fix of later timer wheel Minimum timeout position in each timer wheel Manage timers to trigger at once in a slot similar to other timers Introduce timer slot range counters Timer wheel divided into a "soon wheel" and a "later wheel" Remove unnecessary cancel callback from timer-wheel timers Rearrange timer struct fields in order to simplify Use timer wheel for short BIF timers Use magic refs for BIF timers Remove accessor BIF timer implementation Fix aux-work timer implementation
| * Minimum timeout position in each timer wheelRickard Green2017-04-181-0/+75
| | | | | | | | | | | | Minimum known timeout position is saved in bot far and near wheel. This information is used to avoid scanning from current position in the cases were we know the minimum timeout position.
* | Merge branch 'bjorn/dialyzer/add-typer/OTP-14336' into run-travisBjörn Gustavsson2017-04-211-0/+1
|\ \ | | | | | | | | | | | | | | | * bjorn/dialyzer/add-typer/OTP-14336: Add smoke test for TypER Add back TypEr to the main OTP repository
| * | Add back TypEr to the main OTP repositoryBjörn Gustavsson2017-04-201-0/+1
| |/ | | | | | | | | | | | | | | | | It turned out that the dependencies between Dialyzer and TypEr makes it impractical to have TypEr in a separate repository. Add it back to the OTP repository, but put the Erlang module 'typer' in the dialyzer application.
* | erts: Fix two compiler warnings on OS XLukas Larsson2017-03-281-1/+1
|/
* Remove typer applicationSiri Hansen2017-03-081-1/+0
| | | | The application now has an own repo, https://github.com/erlang/typer
* Fixed typos in ertsAndrew Dryga2017-02-143-3/+3
|
* Implement magic referencesRickard Green2017-02-061-24/+29
| | | | | | | | | | | | | | | | | | | | Magic references are *intentionally* indistinguishable from ordinary references for the Erlang software. Magic references do not change the language, and are intended as a pure runtime internal optimization. An ordinary reference is typically used as a key in some table. A magic reference has a direct pointer to a reference counted magic binary. This makes it possible to implement various things without having to do lookups in a table, but instead access the data directly. Besides very fast lookups this can also improve scalability by removing a potentially contended table. A couple of examples of planned future usage of magic references are ETS table identifiers, and BIF timer identifiers. Besides future optimizations using magic references it should also be possible to replace the exposed magic binary cludge with magic references. That is, magic binaries that are exposed as empty binaries to the Erlang software.
* Improve etp-commandsRickard Green2017-01-131-3/+273
|
* Switch between scheduler types when multi-scheduling is blockedRickard Green2017-01-131-0/+3
|
* Merge branch 'maint'Dan Gudmundsson2016-12-071-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * Update copyright-yearErlang/OTP2016-12-071-1/+1
| |
* | Merge branch 'maint'Rickard Green2016-11-231-36/+87
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * maint: Update etp-commands for dirty schedulers Fix scheduling of system tasks on processes executing dirty Fix call time tracing with dirty schedulers Fix send of exit signal to process executing dirty Fix dirty scheduler process priority Fix alloc-util hard-debug Silence debug warning when no beam jump table is used with dirty schedulers Fix check_process_code() when NifExport is in use Fix GC when NifExport is in use Fix saving of original arguments when rescheduling via NifExport Conflicts: erts/emulator/beam/beam_bif_load.c erts/emulator/beam/erl_nif.c
| * Merge branch 'rickard/dirty-scheduling-fixes' into maintRickard Green2016-11-231-36/+87
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-14051 * rickard/dirty-scheduling-fixes: Update etp-commands for dirty schedulers Fix scheduling of system tasks on processes executing dirty Fix call time tracing with dirty schedulers Fix send of exit signal to process executing dirty Fix dirty scheduler process priority Fix alloc-util hard-debug Silence debug warning when no beam jump table is used with dirty schedulers Conflicts: erts/etc/unix/etp-commands.in
| | * Update etp-commands for dirty schedulersRickard Green2016-11-221-36/+87
| | |
* | | erts: Fix all -Wundef errorsSverker Eriksson2016-11-171-2/+2
| | |
* | | Merge branch 'maint'Lukas Larsson2016-10-181-7/+65
|\ \ \ | |/ /
| * | erts: Add etp-disasm gdb macroLukas Larsson2016-10-181-7/+65
| | |
* | | erts: Improve printouts for some etp commandsLukas Larsson2016-10-121-27/+36
| | | | | | | | | | | | Specifically etp-stacktrace/stackdump/process-info have been changed
* | | erts: Refactor out func_info into structLukas Larsson2016-10-121-2/+6
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds two new structs to be used to represent erlang code in erts. ErtsCodeInfo is used to describe the i_func_info header that is part of all Export entries and the prelude of each function. This replaces all the BeamInstr * that were previously used to point to these locations. After this change the code should never use BeamInstr * with offsets to figure out different parts of the func_info header. ErtsCodeMFA is a struct that is used to descripe a MFA in code. It is used within ErtsCodeInfo and also in Process->current. All function that previously took Eterm * or BeamInstr * to identify a MFA now use the ErtsCodeMFA or ErtsCodeInfo where appropriate. The code has been tested to work when adding a new field to the ErtsCodeInfo struct, but some updates are needed in ops.tab to make it work.
* | erts: Make cerl -dump core work on macSverker Eriksson2016-09-231-4/+14
|/