summaryrefslogtreecommitdiff
path: root/erts/include
Commit message (Collapse)AuthorAgeFilesLines
* Buffer writing of crash dumpsBjörn Gustavsson2017-10-181-0/+1
| | | | | | | | | | | Writing of crash dumps were done using unbuffered IO. This is slow since many small writes are done. Use a FILE* with an allocated buffer to obtain buffered IO. I wrote a small test program that created 50000 binaries of 200 bytes each and then created a crash dump. The crash dumping was an order of magnitude faster with buffered IO than without.
* Update copyright yearRaimo Niskanen2017-05-044-4/+4
|
* Merge branch 'rickard/pcre-8.40'Rickard Green2017-04-112-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-14331 * rickard/pcre-8.40: Update documentation Update README.pcre_update.md Stack guard for PCRE Adjust for incompatibility between PCRE 8.40 and perl 5.22.1 Generate re replacement and split tests with perl vsn 5.22.1 Fix re_SUITE:pcre_compile_workspace_overflow/1 Skip line with lockout of modifiers in PCRE tests Update tests for PCRE version 8.40 Update PCRE to version 8.40 Conflicts: erts/emulator/beam/beam_debug.c
| * Stack guard for PCRERickard Green2017-04-072-0/+4
| |
* | Fixed typos in ertsAndrew Dryga2017-02-142-2/+2
|/
* erts: Add cbprintf for Callback PrintingSverker Eriksson2016-11-172-2/+8
|
* Improve accuracy of timeouts using premature timeoutsRickard Green2016-06-221-0/+29
| | | | | | | Improve accuracy of timeouts using a premature timeout then return to sleep with a shorter timeout just before requested timeout. This approach is only used on certain platforms where we know it improves the accuracy of the timeouts, e.g. MacOS X.
* erts: Fix undefined shift to msb in ethr_mutexBjörn-Egil Dahlberg2016-06-101-5/+5
|
* Remove conditional dirty schedulers APIRickard Green2016-05-101-22/+0
|
* Merge branch 'henrik/update-copyrightyear'Henrik Nord2016-04-1349-49/+49
|\ | | | | | | | | * henrik/update-copyrightyear: update copyright-year
| * update copyright-yearHenrik Nord2016-03-1549-49/+49
| |
* | erts: Fix pthread_setname_np warning on osxLukas Larsson2016-03-181-0/+4
|/
* Merge branch 'maint'Rickard Green2016-02-222-25/+52
|\ | | | | | | | | | | * maint: Improve cmpxchg8b/cmpxchg16b inline asm Improve cmpxchg8b inline asm configure test
| * Improve cmpxchg8b/cmpxchg16b inline asmRickard Green2016-02-181-20/+37
| | | | | | | | | | Clang didn't like that ecx/rcx was mapped to input and output variables of different types.
| * Improve cmpxchg8b inline asm configure testRickard Green2016-02-172-5/+15
| |
* | erts: Add power saving cpu feature tests and use themLukas Larsson2016-02-021-12/+38
| |
* | erts: Add rdtscp instruction checkLukas Larsson2016-02-022-1/+5
| |
* | Merge branch 'maint'Dan Gudmundsson2015-11-231-1/+2
|\ \ | |/ | | | | | | * maint: win32: Fix mixed cygwin and msys configure tests
| * win32: Fix mixed cygwin and msys configure testsDan Gudmundsson2015-11-121-1/+2
| | | | | | | | And test for mixed msys in emulator
* | Merge branch 'maint'Rickard Green2015-09-092-0/+12
|\ \ | |/ | | | | | | | | | | * maint: Add configure switch --disable-saved-compile-time Fix ethread events with timeout Improve choice of clock sources at build time
| * Fix ethread events with timeoutRickard Green2015-08-272-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | Lots of pthread platforms unnecessarily falled back on the pipe/select solution. This since we tried to use the same monotonic clock source for pthread_cond_timedwait() as used by OS monotonic time. This has been fixed on most platforms by using another clock source. Darwin can however not use pthread_cond_timedwait() with monotonic clock source and has to use the pipe/select solution. On darwin we now use select with _DARWIN_UNLIMITED_SELECT in order to be able to handle a large amount of file descriptors.
* | ose: Remove all code related to the OSE portLukas Larsson2015-07-103-211/+7
| | | | | | | | | | | | 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.
* | erts: Remove halfword relative printfBjörn-Egil Dahlberg2015-06-241-1/+1
| |
* | erts: Remove halfword in lib_srcBjörn-Egil Dahlberg2015-06-242-12/+0
|/
* Change license text to APLv2Bruce Yinhe2015-06-1855-511/+566
|
* Merge branch 'rickard/gcc-atomics/OTP-12383'Rickard Green2015-03-207-148/+1140
|\ | | | | | | | | | | | | | | * rickard/gcc-atomics/OTP-12383: Improve ethread atomics based on GCC builtins Conflicts: erts/aclocal.m4
| * Improve ethread atomics based on GCC builtinsRickard Green2015-01-147-148/+1140
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Use of __atomic builtins when available. * Improved configure test that checks for missing memory barrier in __sync_synchronize(). The old approach was to verify known working gcc versions and check gcc version at compile time. Besides not being very safe, the old approach often unnecessarily caused usage of the very expensive workaround. * Introduced (no overhead) workaround for missing clobber in __sync_synchronize() when using buggy LLVM implementation of __sync_synchronize(). * Implement native memory barriers for ARM processors supporting the DMB instruction. * Use of volatile store on Alpha as atomic set operation if no __atomic_store_n() is available (already used on x86/x86_64 Sparc V9, PowerPC, and MIPS). Fallback used when not using volatile store is typically very expensive. * Use volatile load on Alpha and ARM as atomic read operation if no __atomic_load_n() is available (already used on x86/x86_64 Sparc V9, PowerPC, and MIPS). Fallback when not using volatile load is typically very expensive.
* | Merge branch 'rickard/time_api/OTP-11997'Rickard Green2015-03-204-17/+86
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | Implement ethread events with timeoutRickard Green2015-03-204-19/+73
| | |
| * | Introduce a new time APIRickard Green2015-03-201-0/+15
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | erts: Introduce thread suspend functionsLukas Larsson2014-12-191-0/+1
| | | | | | | | | | | | | | These functions allow any thread to suspend any other thread immediately and then resume all threads. This is useful when doing a crash dump in order to get a more accurate picture of what state the system is in.
* | erts: Add support for thread namesLukas Larsson2014-12-191-8/+5
|/
* Merge branch 'rickard/ppc32-atomic-opt/OTP-12250' into maintRickard Green2014-11-251-1/+145
|\ | | | | | | | | * rickard/ppc32-atomic-opt/OTP-12250: Optimize atomic ops with release barrier for 32-bit PowerPC
| * Optimize atomic ops with release barrier for 32-bit PowerPCRickard Green2014-10-171-1/+145
| |
* | Implement support for double word atomics using libatomic_opsRickard Green2014-11-102-0/+568
| |
* | Improve usage of libatomic_ops for word size atomicsRickard Green2014-11-103-10/+337
| | | | | | | | Use AO_fetch_compare_and_swap*() when present
* | erts: Separate ethread inlining from ethread.hBjörn-Egil Dahlberg2014-06-302-25/+50
| | | | | | | | | | The commit adb5dc0090bc419e2c4c1250653badbddeb6263b (ETHR_FORCE_INLINE) broke some platforms without adequate thread support.
* | Merge branch 'jjhoo/mingw_compile_fix_forceinline/OTP-11945' into maintRickard Green2014-06-161-0/+1
|\ \ | | | | | | | | | | | | * jjhoo/mingw_compile_fix_forceinline/OTP-11945: Fix redefinition of ETHR_FORCE_INLINE
| * | Fix redefinition of ETHR_FORCE_INLINERickard Green2014-06-161-0/+1
| | |
* | | Merge branch 'jjhoo/mingw_compile_fix_forceinline/OTP-11945' into maintRickard Green2014-06-062-17/+24
|\ \ \ | |/ / | | | | | | | | | | | | * jjhoo/mingw_compile_fix_forceinline/OTP-11945: Do not use __always_inline__ attribute unless gcc vsn >= 3.1.1 Add ETHR_FORCE_INLINE define to hide compiler specific directives
| * | Do not use __always_inline__ attribute unless gcc vsn >= 3.1.1Rickard Green2014-05-221-14/+18
| | |
| * | Add ETHR_FORCE_INLINE define to hide compiler specific directivesJani Hakala2014-02-282-4/+7
| | | | | | | | | | | | | | | | | | Some win32 specific code does not compile with gcc (mingw-w64) since '__forceinline' is not supported by gcc. This can be avoided by defining a new macro ETHR_FORCE_INLINE similar to ETHR_INLINE.
* | | ose: Fix erts assert failed printoutsLukas Larsson2014-03-261-1/+1
| | |
* | | ose: Yielding has to be done differently for background processes.Robert Paal2014-03-261-3/+15
|/ /
* | Merge branch 'lukas/ose/master/OTP-11334'Lukas Larsson2014-02-243-7/+209
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * | ose: Cleanup of mutex selection definesLukas Larsson2014-02-242-28/+5
| | |
| * | ose: Remove uneccesary defineLukas Larsson2014-02-241-1/+0
| | |
| * | ose: Thread priorities configurable from lmconfLukas Larsson2014-02-241-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | ose: Yielding the cpu is done "the OSE" wayLukas Larsson2014-02-241-3/+3
| | |
| * | ose: Start using ppdata for tse keyLukas Larsson2014-02-241-3/+2
| | |