| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
* lukas/erts/isfinite-fix/OTP-12268:
erts: Fix finite warning for clang
|
| |
| |
| |
| |
| | |
clang aka llvm claims to be __GNUC__ and thus we have to
explicitly check that it is not used.
|
|\ \
| | |
| | |
| | |
| | | |
* lukas/erts/bif_info_rebuild/OTP-12344:
Sort keys before generating
|
| | |
| | |
| | |
| | |
| | | |
This has to be done in order to consistently generate the same
file so that we do not get rebuilds all the time.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
* vinoski/rm-foo-dtrace:
Clean up temporary dtrace file during config
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
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.
|
|\ \ \
| |/ /
|/| |
| | |
| | | |
* sverk/port_get_data-race/OTP-12208:
erts: Fix port data memory allocation bug
|
| | |
| | |
| | |
| | | |
for non-immediate port data >= sizeof(Eterm)*2 words.
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
* rickard/maint-17/activate-runq/OTP-12287:
Do not let non-empty run-queue prevent activation of scheduler
|
| |\ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
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
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
erts/emulator/beam/erl_process.c
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* rickard/ppc32-atomic-opt/OTP-12250:
Optimize atomic ops with release barrier for 32-bit PowerPC
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* rickard/libatomic_ops_improvements/OTP-12302:
Implement support for double word atomics using libatomic_ops
Improve usage of libatomic_ops for word size atomics
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Use AO_fetch_compare_and_swap*() when present
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
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().
|
| | | | | | | | |
|
|\ \ \ \ \ \ \ \
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
* sverk/with-ssl-rpath/OTP-12316:
erts,crypto: Add configure option --with-ssl-rpath
|
| | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* lem/epmd_sd_notify/OTP-12321:
epmd: Unify systemd autoconf macros usage
epmd: Added systemd notify support to EPMD
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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>
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
|
|\ \ \ \ \ \ \ \ \ \
| | |_|_|_|_|_|_|_|/
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* lukas/erts/isfinite-fix/OTP-12268:
erts: Use finite instead of isfinite with gcc
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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.
|
|\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
* siri/no-unicode-atoms/OTP-12172:
Remove comments about unicode atoms in OTP 18
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
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.
|
|\ \ \ \ \ \ \ \ \ \ \
| |/ / / / / / / / / /
|/| | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
* s1n4/zlib_doc_typo:
Fix a typo in the zlib documentation
|
| | | | | | | | | | | |
|
|\ \ \ \ \ \ \ \ \ \ \
| |/ / / / / / / / / /
|/| | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
OTP-12300
* vinoski/dirty-nif-return-gc:
Fix gc-related problem with dirty NIFs
|
| |/ / / / / / / / /
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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.
|
|\ \ \ \ \ \ \ \ \ \
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
OTP-12298
* lemenkov/expose_nif_version:
Expose NIF version
|
| | |/ / / / / / / /
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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>
|
|\ \ \ \ \ \ \ \ \ \
| |_|_|/ / / / / / /
|/| | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* vinoski/fix-smp-disable-with-ds/OTP-12295:
Fix "-smp disable" for emulator with dirty schedulers
|
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
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]
|
|\ \ \ \ \ \ \ \ \ \
| | |_|_|_|/ / / / /
| |/| | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
Conflicts:
OTP_VERSION
|
| | | | | | | | | | |
|
| |\ \ \ \ \ \ \ \ \
| | | |_|_|/ / / / /
| | |/| | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* sverk/cpool_fetch-dc_list-bug/OTP-12249:
erts: Fix bug when delayed deallocated carrier is reused by cpool_fetch
|
| | |_|_|_|_|/ / /
| |/| | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
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.
|
|\ \ \ \ \ \ \ \ \
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | |
| | | | | | | | | | |
* lukas/erts/fix_undefined_behaviour/OTP-12290:
erts: Fix ub in list_to_integer and bignum div
|