summaryrefslogtreecommitdiff
path: root/erts
Commit message (Collapse)AuthorAgeFilesLines
* Improve ethread atomics based on GCC builtinsRickard Green2015-01-149-213/+1404
| | | | | | | | | | | | | | | | | | | | | | | * 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.
* Fix missing quotation in LM_FIND_EMU_CCRickard Green2015-01-051-12/+12
|
* Prepare releaseErlang/OTP2014-12-092-1/+253
|
* Update preloaded modulesMarcus Arendt2014-12-0910-0/+0
|
* Add .appup fileRickard Green2014-12-081-1/+2
|
* Fix function "defined but not used" warningRickard Green2014-12-031-0/+4
|
* erts: Fix some spelling in internal docsSverker Eriksson2014-12-031-25/+25
|
* Merge branch 'lukas/erts/isfinite-fix/OTP-12268' into maintLukas Larsson2014-12-021-1/+1
|\ | | | | | | | | * lukas/erts/isfinite-fix/OTP-12268: erts: Fix finite warning for clang
| * erts: Fix finite warning for clangLukas Larsson2014-12-021-1/+1
| | | | | | | | | | clang aka llvm claims to be __GNUC__ and thus we have to explicitly check that it is not used.
* | Merge branch 'lukas/erts/bif_info_rebuild/OTP-12344' into maintLukas Larsson2014-12-021-1/+1
|\ \ | | | | | | | | | | | | * lukas/erts/bif_info_rebuild/OTP-12344: Sort keys before generating
| * | Sort keys before generatingLukas Larsson2014-11-261-1/+1
| | | | | | | | | | | | | | | This has to be done in order to consistently generate the same file so that we do not get rebuilds all the time.
* | | Merge branch 'vinoski/rm-foo-dtrace' into maintMarcus Arendt2014-12-011-0/+1
|\ \ \ | | | | | | | | | | | | | | | | * vinoski/rm-foo-dtrace: Clean up temporary dtrace file during config
| * | | Clean up temporary dtrace file during configSteve Vinoski2014-11-261-0/+1
| |/ / | | | | | | | | | | | | | | | When configuring erts to support dynamic trace via dtrace, be sure to clean up the temporary file "erts/foo-dtrace.h" used to help check for dtrace support. Otherwise, it shows up as an untracked file in git.
* | | Merge branch 'sverk/port_get_data-race/OTP-12208' into maintSverker Eriksson2014-11-262-11/+17
|\ \ \ | |/ / |/| | | | | | | | * sverk/port_get_data-race/OTP-12208: erts: Fix port data memory allocation bug
| * | erts: Fix port data memory allocation bugSverker Eriksson2014-11-252-11/+17
| | | | | | | | | | | | for non-immediate port data >= sizeof(Eterm)*2 words.
* | | Merge branch 'rickard/maint-17/activate-runq/OTP-12287' into maintRickard Green2014-11-251-4/+4
|\ \ \ | | | | | | | | | | | | | | | | * rickard/maint-17/activate-runq/OTP-12287: Do not let non-empty run-queue prevent activation of scheduler
| * \ \ Merge branch 'rickard/activate-runq/OTP-12287' into ↵Rickard Green2014-11-041-4/+4
| |\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rickard/maint-17/activate-runq/OTP-12287 * rickard/activate-runq/OTP-12287: Do not let non-empty run-queue prevent activation of scheduler Conflicts: erts/emulator/beam/erl_process.c
| | * | | Do not let non-empty run-queue prevent activation of schedulerRickard Green2014-11-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: erts/emulator/beam/erl_process.c
* | | | | 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
| | | | | |
* | | | | | Merge branch 'rickard/libatomic_ops_improvements/OTP-12302' into maintRickard Green2014-11-255-10/+927
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * rickard/libatomic_ops_improvements/OTP-12302: Implement support for double word atomics using libatomic_ops Improve usage of libatomic_ops for word size atomics
| * | | | | | 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-104-10/+359
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Use AO_fetch_compare_and_swap*() when present
* | | | | | | Merge branch 'sverk/cpool-search-improvement' into maintSverker Eriksson2014-11-254-54/+565
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-12323 * sverk/cpool-search-improvement: erts: Add internal docs for super carrier and new cpool search. erts: Fix bug causing mbc to be deleted from cpool before it was inserted erts: Fix bug causing mbc removed from cpool to be used at pool entrance erts: Add pooled_list and traitor_list
| * | | | | | | erts: Add internal docs for super carrier and new cpool search.Sverker Eriksson2014-11-062-10/+285
| | | | | | | |
| * | | | | | | erts: Fix bug causing mbc to be deleted from cpool before it was insertedSverker Eriksson2014-10-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Set IN_POOL flag _after_ mbc has been actually inserted. Earlier it did not matter if IN_POOL was set early as it was not possible to find a carrier before is was fully inserted. Now when searching pooled_list and traitor_list we must make sure a found carrier has been fully inserted into cpool before removing it.
| * | | | | | | erts: Fix bug causing mbc removed from cpool to be used at pool entranceSverker Eriksson2014-10-061-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Clear both IN_POOL and BUSY flags when empty carrier is removed is removed from pool to be destroyed. Earlier it was enough to leave BUSY flag set but now with pooled_list we must clear IN_POOL to avoid using it as cpool_entrance in cpool_fetch().
| * | | | | | | erts: Add pooled_list and traitor_listSverker Eriksson2014-10-032-41/+272
| | | | | | | |
* | | | | | | | Merge branch 'sverk/with-ssl-rpath/OTP-12316' into maintSverker Eriksson2014-11-251-2/+39
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * sverk/with-ssl-rpath/OTP-12316: erts,crypto: Add configure option --with-ssl-rpath
| * | | | | | | | erts,crypto: Add configure option --with-ssl-rpathSverker Eriksson2014-11-201-2/+39
| | | | | | | | |
* | | | | | | | | Merge branch 'lem/epmd_sd_notify/OTP-12321' into maintLukas Larsson2014-11-254-19/+27
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lem/epmd_sd_notify/OTP-12321: epmd: Unify systemd autoconf macros usage epmd: Added systemd notify support to EPMD
| * | | | | | | | | epmd: Unify systemd autoconf macros usagePeter Lemenkov2014-11-243-18/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use both HAVE_SYSTEMD_DAEMON and HAVE_SYSTEMD_SD_DAEMON - use only the former one and remove the latter one entirely. Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
| * | | | | | | | | epmd: Added systemd notify support to EPMDPeter Lemenkov2014-11-243-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
* | | | | | | | | | Merge branch 'lukas/erts/isfinite-fix/OTP-12268' into maintLukas Larsson2014-11-241-0/+11
|\ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lukas/erts/isfinite-fix/OTP-12268: erts: Use finite instead of isfinite with gcc
| * | | | | | | | | erts: Use finite instead of isfinite with gccLukas Larsson2014-11-241-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turns out that isfinite emits a function call and not an instruction in gcc, this makes estone float arith about 50-75% slower. finite emits the instruction so we use that instead.
* | | | | | | | | | Merge branch 'siri/no-unicode-atoms/OTP-12172' into maintSiri Hansen2014-11-181-3/+2
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * siri/no-unicode-atoms/OTP-12172: Remove comments about unicode atoms in OTP 18
| * | | | | | | | | | Remove comments about unicode atoms in OTP 18Siri Hansen2014-11-111-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was once a plan to implement support for unicode atoms in OTP 18. This plan has been stopped until further notice, and the information about this is now removed from the documentation.
* | | | | | | | | | | Merge branch 's1n4/zlib_doc_typo' into maintBruce Yinhe2014-11-121-1/+1
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * s1n4/zlib_doc_typo: Fix a typo in the zlib documentation
| * | | | | | | | | | Fix a typo in the zlib documentationSina Samavati2014-11-101-1/+1
| | | | | | | | | | |
* | | | | | | | | | | Merge branch 'vinoski/dirty-nif-return-gc' into maintBruce Yinhe2014-11-103-0/+17
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-12300 * vinoski/dirty-nif-return-gc: Fix gc-related problem with dirty NIFs
| * | | | | | | | | | Fix gc-related problem with dirty NIFsSteve Vinoski2014-11-043-0/+17
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ensure that the return value from a dirty NIF call is made part of the GC rootset. Add a new regression test to nif_SUITE. Thanks to Daniel Goertzen for reporting the error and providing a test case, and to Sverker Eriksson for making test case reproducible and finding the fix.
* | | | | | | | | | Merge branch 'lemenkov/expose_nif_version' into maintBruce Yinhe2014-11-074-2/+16
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OTP-12298 * lemenkov/expose_nif_version: Expose NIF version
| * | | | | | | | | | Expose NIF versionPeter Lemenkov2014-11-024-2/+16
| | |/ / / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows checking for NIF API version in a way similar to driver version. E.g. by calling erlang:system_info(nif_version). Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
* | | | | | | | | | Merge branch 'vinoski/fix-smp-disable-with-ds/OTP-12295' into maintMarcus Arendt2014-11-061-1/+1
|\ \ \ \ \ \ \ \ \ \ | |_|_|/ / / / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vinoski/fix-smp-disable-with-ds/OTP-12295: Fix "-smp disable" for emulator with dirty schedulers
| * | | | | | | | | Fix "-smp disable" for emulator with dirty schedulersSteve Vinoski2014-10-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Running "erl -smp disable" on an emulator built with dirty scheduler support caused problems such as segmentation violations and emulator status line outputs containing garbage. For example: $ erl -smp disable Segmentation fault (core dumped) and: $ erl -smp disable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [ds:10:4297895689:4299948152] [async-threads:280] This problem also caused the emulator smoke_test_SUITE to hit these same problems if run in an emulator started with the "-smp disable" option. Fix this segmentation violation by ensuring that dirty scheduler information is printed in the status line only when the emulator is compiled with ERTS_SMP enabled. With this fix in place, the smoke_test_SUITE now passes when the "-smp disable" option is used, and the emulator status line prints correctly for both "-smp enable" and "-smp disable": $ erl -smp enable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:10] [kernel-poll:false] and: $ erl -smp disable Erlang/OTP 17 [DEVELOPMENT] [erts-6.2] [source] [64-bit] [async-threads:10] [kernel-poll:false]
* | | | | | | | | | Merge branch 'maint-17' into maintMarcus Arendt2014-11-056-6/+35
|\ \ \ \ \ \ \ \ \ \ | | |_|_|_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: OTP_VERSION
| * | | | | | | | | Prepare releaseErlang/OTP2014-11-042-1/+26
| | | | | | | | | |
| * | | | | | | | | Merge branch 'sverk/cpool_fetch-dc_list-bug/OTP-12249' into maint-17Erlang/OTP2014-11-041-0/+12
| |\ \ \ \ \ \ \ \ \ | | | |_|_|/ / / / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | * sverk/cpool_fetch-dc_list-bug/OTP-12249: erts: Fix bug when delayed deallocated carrier is reused by cpool_fetch
| * | | | | | | | | erts: Mend run_erl to set windows size of terminal sent from to_erlSverker Eriksson2014-10-304-5/+9
| | |_|_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | | | | | Merge branch 'lukas/erts/fix_undefined_behaviour/OTP-12290' into maintLukas Larsson2014-11-052-7/+8
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lukas/erts/fix_undefined_behaviour/OTP-12290: erts: Fix ub in list_to_integer and bignum div