aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/unix
AgeCommit message (Collapse)Author
2017-02-14Fixed typos in ertsAndrew Dryga
2017-02-06Implement magic referencesRickard Green
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.
2017-01-13Improve etp-commandsRickard Green
2017-01-13Switch between scheduler types when multi-scheduling is blockedRickard Green
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-23Merge branch 'maint'Rickard Green
* 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
2016-11-23Merge branch 'rickard/dirty-scheduling-fixes' into maintRickard Green
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
2016-11-22Update etp-commands for dirty schedulersRickard Green
2016-11-17erts: Fix all -Wundef errorsSverker Eriksson
2016-10-18Merge branch 'maint'Lukas Larsson
2016-10-18erts: Add etp-disasm gdb macroLukas Larsson
2016-10-12erts: Improve printouts for some etp commandsLukas Larsson
Specifically etp-stacktrace/stackdump/process-info have been changed
2016-10-12erts: Refactor out func_info into structLukas Larsson
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.
2016-09-23erts: Make cerl -dump core work on macSverker Eriksson
2016-09-06doc: Use groff with -Tutf8Hans Bolinder
2016-08-10Merge branch 'sverker/run_erl-pty-race/OTP-13795' into maintSverker Eriksson
2016-08-10run_erl: Add sleepy_child test caseSverker Eriksson
with run_erl option -sleepy-child to provoke race when slave pty is late
2016-07-05run_erl: Fix failing run_erl invokation on OpenBSDSverker Eriksson
Symptom: run_erl does exit(0) and child program (erl) does not seem to start. Running run_erl again however brings the previous child program to life. Problem: A race causing run_erl to read 0 from master pty and exit because the child has not yet opened its corresponding slave pty. Solution: Use the non standard openpty() function instead that does not expose this race as the slave fd is opened in the parent. Question: Is there a race free way to do this with posix_openpt on OpenBSD?
2016-07-05run_erl: Beautify #ifdef jungleSverker Eriksson
2016-06-22erts: Fix etp-carrier-blocks for non smpSverker Eriksson
2016-06-14erts: Make etp-*-info take any value as inputLukas Larsson
2016-06-14erts: Add etp commands to re-compile erlangLukas Larsson
2016-05-31Update process state flags in etp-commandsRickard Green
2016-04-13Merge branch 'henrik/update-copyrightyear'Henrik Nord
* henrik/update-copyrightyear: update copyright-year
2016-03-24erts: Fix etp pid print on big endianLukas Larsson
2016-03-18Merge branch 'lukas/erts/fix-vsyslog-freebsd/OTP-13427'Lukas Larsson
* lukas/erts/fix-vsyslog-freebsd/OTP-13427: erts: Fix run_erl syslog prototypes for freebsd Conflicts: erts/etc/unix/run_erl.c
2016-03-15update copyright-yearHenrik Nord
2016-03-15run_erl: Don't define _XOPEN_SOURCE on OS XBjörn Gustavsson
On MacOS X, defining _XOPEN_SOURCE usually *removes* features from header files. Therefore, we should not set _XOPEN_SOURCE to 600 since that will remove the prototype for vsyslog(). Setting it to an empty value or not including it will ensure that the vsyslog() prototype is included.
2016-02-29erts: Fix run_erl syslog prototypes for freebsdLukas Larsson
2015-07-10ose: Remove all code related to the OSE portLukas Larsson
The OSE port is no longer supported and this commit removed it and any changes related to it. The things that were general improvements have been left in the code.
2015-06-24erts: Remove halfword etp-commandsBjörn-Egil Dahlberg
2015-06-18Change license text to APLv2Bruce Yinhe
2015-05-18erts: Fix typo in etp-carrier-blocksSverker Eriksson
2015-04-14erts: Add map support to gdb etp commandSverker Eriksson
2015-04-10erts: Add etp_the_non_valueSverker Eriksson
for a correct (non)value regardless of build type.
2015-03-20Merge branch 'rickard/time_api/OTP-11997'Rickard Green
* rickard/time_api/OTP-11997: (22 commits) Update primary bootstrap inets: Suppress deprecated warning on erlang:now/0 inets: Cleanup of multiple copies of functions Add inets_lib with common functions used by multiple modules inets: Update comments Suppress deprecated warning on erlang:now/0 Use new time API and be back-compatible in inets Remove unused functions and removed redundant test asn1 test SUITE: Eliminate use of now/0 Disable deprecated warning on erlang:now/0 in diameter_lib Use new time API and be back-compatible in ssh Replace all calls to now/0 in CT with new time API functions test_server: Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API Replace usage of erlang:now() with usage of new API otp_SUITE: Warn for calls to erlang:now/0 Replace usage of erlang:now() with usage of new API Multiple timer wheels Erlang based BIF timer implementation for scalability Implement ethread events with timeout ... Conflicts: bootstrap/bin/start.boot bootstrap/bin/start_clean.boot bootstrap/lib/compiler/ebin/beam_asm.beam bootstrap/lib/compiler/ebin/compile.beam bootstrap/lib/kernel/ebin/auth.beam bootstrap/lib/kernel/ebin/dist_util.beam bootstrap/lib/kernel/ebin/global.beam bootstrap/lib/kernel/ebin/hipe_unified_loader.beam bootstrap/lib/kernel/ebin/inet_db.beam bootstrap/lib/kernel/ebin/inet_dns.beam bootstrap/lib/kernel/ebin/inet_res.beam bootstrap/lib/kernel/ebin/os.beam bootstrap/lib/kernel/ebin/pg2.beam bootstrap/lib/stdlib/ebin/dets.beam bootstrap/lib/stdlib/ebin/dets_utils.beam bootstrap/lib/stdlib/ebin/erl_tar.beam bootstrap/lib/stdlib/ebin/escript.beam bootstrap/lib/stdlib/ebin/file_sorter.beam bootstrap/lib/stdlib/ebin/otp_internal.beam bootstrap/lib/stdlib/ebin/qlc.beam bootstrap/lib/stdlib/ebin/random.beam bootstrap/lib/stdlib/ebin/supervisor.beam bootstrap/lib/stdlib/ebin/timer.beam erts/aclocal.m4 erts/emulator/beam/bif.c erts/emulator/beam/erl_bif_info.c erts/emulator/beam/erl_db_hash.c erts/emulator/beam/erl_init.c erts/emulator/beam/erl_process.h erts/emulator/beam/erl_thr_progress.c erts/emulator/beam/utils.c erts/emulator/sys/unix/sys.c erts/preloaded/ebin/erlang.beam erts/preloaded/ebin/erts_internal.beam erts/preloaded/ebin/init.beam erts/preloaded/src/erts_internal.erl lib/common_test/test/ct_hooks_SUITE_data/cth/tests/empty_cth.erl lib/diameter/src/base/diameter_lib.erl lib/kernel/src/os.erl lib/ssh/test/ssh_basic_SUITE.erl system/doc/efficiency_guide/advanced.xml
2015-03-20Introduce a new time APIRickard Green
The old time API is based on erlang:now/0. The major issue with erlang:now/0 is that it was intended to be used for so many unrelated things. This tied these unrelated operations together and unnecessarily caused performance, scalability as well as accuracy, and precision issues for operations that do not need to have such issues. The new API spreads different functionality over multiple functions in order to improve on this. The new API consists of a number of new BIFs: - erlang:convert_time_unit/3 - erlang:monotonic_time/0 - erlang:monotonic_time/1 - erlang:system_time/0 - erlang:system_time/1 - erlang:time_offset/0 - erlang:time_offset/1 - erlang:timestamp/0 - erlang:unique_integer/0 - erlang:unique_integer/1 - os:system_time/0 - os:system_time/1 and a number of extensions of existing BIFs: - erlang:monitor(time_offset, clock_service) - erlang:system_flag(time_offset, finalize) - erlang:system_info(os_monotonic_time_source) - erlang:system_info(time_offset) - erlang:system_info(time_warp_mode) - erlang:system_info(time_correction) - erlang:system_info(start_time) See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
2014-12-18Merge branch 'maint'Bruce Yinhe
2014-12-02Replaced "Endianess" with "Endianness" everywhereDavid Haguenauer
2014-11-05Merge branch 'maint'Marcus Arendt
Conflicts: erts/vsn.mk
2014-11-05Merge branch 'maint-17' into maintMarcus Arendt
Conflicts: OTP_VERSION
2014-10-30erts: Mend run_erl to set windows size of terminal sent from to_erlSverker Eriksson
Need to include sys/ioctl.h for TIOCSWINSZ to be defined. Seems this was broken when refactoring run_erl for OSE in OTP 17.0.
2014-10-29Merge branch 'maint'Sverker Eriksson
2014-10-29Merge branch 'sverk/etp-check-beam-ranges' into maintSverker Eriksson
* sverk/etp-check-beam-ranges: erts: Add gdb command etp-check-beam-ranges
2014-10-29erts: Add gdb command etp-check-beam-rangesSverker Eriksson
2014-10-27Merge branch 'egil/fix-instruction-counter'Björn-Egil Dahlberg
* egil/fix-instruction-counter: erts: Fix SMP for ERTS_OPCODE_COUNTER_SUPPORT erts: Add icount build type for opcode counter
2014-10-02Merge branch 'maint'Sverker Eriksson
2014-10-02Merge branch 'sverk/etp-address-to-beam-opcode' into maintSverker Eriksson
* sverk/etp-address-to-beam-opcode: erts: Add gdb command etp-address-to-beam-opcode
2014-09-17Merge branch 'sverk/bin-alloc-refactor'Sverker Eriksson
* sverk/bin-alloc-refactor: erts: Fix gdb command etp-carrier-blocks for 32-bit erts: Refactor binary allocation interface to also initialize Binary